Problemas con SP

10/03/2006 - 18:49 por Daniel G. Samborski | Informe spam
Hola, tengo el siguiente codigo...

declare @Nombre varchar(50), @FechaDesde datetime, @FechaHasta datetime
set @Nombre='per'
set @FechaDesde='03/08/1973'
set @FechaHasta='01/01/2009'

select cambioshistorico.codven, cambioshistorico.fecha,
cliente.codcli, cliente.apellnomb,
cambioshistorico.descripcion, cambioshistorico.importe
from cambioshistorico
inner join ventas on ventas.tipo='n'
inner join cliente on cliente.apellnomb like @nombre + '%' and
cliente.codcli=ventas.codcli
and ventas.tipo='n'
and cambioshistorico.Fecha between @fechaDesde
and @fechaHasta


Esto me deberia tirar la siguiente lista:
2014 2006-03-08 00:00:00.000 24 PERALTA CEFERINA F -15.7000
2009 2006-03-07 00:00:00.000 321 PEREZ
-18.1800


Pero en su lugar me tira esto otro...
2014 2006-03-08 00:00:00.000 24 PERALTA CEFERINA F -15.7000
2009 2006-03-07 00:00:00.000 24 PERALTA CEFERINA -18.1800
2014 2006-03-08 00:00:00.000 321 PEREZ IGNACIO F -15.7000
2009 2006-03-07 00:00:00.000 321 PEREZ
-18.1800


¿Por que es esto y como lo soluciono?


Daniel

Preguntas similare

Leer las respuestas

#1 Raul Guerrero
11/03/2006 - 02:41 | Informe spam
El problema radica en que quieres filtrar los resultados por medio de los
inner join, lo cual esta mal en principio. Los filtos en las consultas van
despues de la Sentencia WHERE.

SELECT *
FROM dbo.Table_1 INNER JOIN
dbo.Table_2 ON dbo.Table_1.dato = dbo.Table_2.dato
WHERE dbo.Table_1.dato=@dato

Al tu intentar filtrar en el inner join, la base de datos no sabe como
relacionar los registros uno a uno por medio de un id y por lo tanto une el
resultado de las tablas.

Es importante que revises si en las tablas tienes un campo id que permita la
relacion de las tablas porque de no ser asi, tendras que agregarlo.

Te envio un cordial saludo

Atentamente,
Raúl Guerrero
http://superneurona.blogspot.com/

Referencia en mi blog:
http://neuronahelp.blogspot.com/200...on-sp.html

"Daniel G. Samborski" wrote:

Hola, tengo el siguiente codigo...

declare @Nombre varchar(50), @FechaDesde datetime, @FechaHasta datetime
set @Nombre='per'
set @FechaDesde='03/08/1973'
set @FechaHasta='01/01/2009'

select cambioshistorico.codven, cambioshistorico.fecha,
cliente.codcli, cliente.apellnomb,
cambioshistorico.descripcion, cambioshistorico.importe
from cambioshistorico
inner join ventas on ventas.tipo='n'
inner join cliente on cliente.apellnomb like @nombre + '%' and
cliente.codcli=ventas.codcli
and ventas.tipo='n'
and cambioshistorico.Fecha between @fechaDesde
and @fechaHasta


Esto me deberia tirar la siguiente lista:
2014 2006-03-08 00:00:00.000 24 PERALTA CEFERINA F -15.7000
2009 2006-03-07 00:00:00.000 321 PEREZ
-18.1800


Pero en su lugar me tira esto otro...
2014 2006-03-08 00:00:00.000 24 PERALTA CEFERINA F -15.7000
2009 2006-03-07 00:00:00.000 24 PERALTA CEFERINA -18.1800
2014 2006-03-08 00:00:00.000 321 PEREZ IGNACIO F -15.7000
2009 2006-03-07 00:00:00.000 321 PEREZ
-18.1800


¿Por que es esto y como lo soluciono?


Daniel




Respuesta Responder a este mensaje
#2 Daniel G. Samborski
11/03/2006 - 03:39 | Informe spam
Gracias, lo solucione agregando un filtro mas luego de un inner join.

Daniel.

"Raul Guerrero" escribió en el
mensaje news:
El problema radica en que quieres filtrar los resultados por medio de los
inner join, lo cual esta mal en principio. Los filtos en las consultas van
despues de la Sentencia WHERE.

SELECT *
FROM dbo.Table_1 INNER JOIN
dbo.Table_2 ON dbo.Table_1.dato = dbo.Table_2.dato
WHERE dbo.Table_1.dato=@dato

Al tu intentar filtrar en el inner join, la base de datos no sabe como
relacionar los registros uno a uno por medio de un id y por lo tanto une
el
resultado de las tablas.

Es importante que revises si en las tablas tienes un campo id que permita
la
relacion de las tablas porque de no ser asi, tendras que agregarlo.

Te envio un cordial saludo

Atentamente,
Raúl Guerrero
http://superneurona.blogspot.com/

Referencia en mi blog:
http://neuronahelp.blogspot.com/200...on-sp.html

"Daniel G. Samborski" wrote:

Hola, tengo el siguiente codigo...

declare @Nombre varchar(50), @FechaDesde datetime, @FechaHasta datetime
set @Nombre='per'
set @FechaDesde='03/08/1973'
set @FechaHasta='01/01/2009'

select cambioshistorico.codven, cambioshistorico.fecha,
cliente.codcli, cliente.apellnomb,
cambioshistorico.descripcion, cambioshistorico.importe
from cambioshistorico
inner join ventas on ventas.tipo='n'
inner join cliente on cliente.apellnomb like @nombre + '%' and
cliente.codcli=ventas.codcli
and ventas.tipo='n'
and cambioshistorico.Fecha between @fechaDesde
and @fechaHasta


Esto me deberia tirar la siguiente lista:
2014 2006-03-08 00:00:00.000 24 PERALTA CEFERINA F -15.7000
2009 2006-03-07 00:00:00.000 321 PEREZ
-18.1800


Pero en su lugar me tira esto otro...
2014 2006-03-08 00:00:00.000 24 PERALTA CEFERINA F -15.7000
2009 2006-03-07 00:00:00.000 24 PERALTA CEFERINA -18.1800
2014 2006-03-08 00:00:00.000 321 PEREZ IGNACIO
F -15.7000
2009 2006-03-07 00:00:00.000 321 PEREZ
-18.1800


¿Por que es esto y como lo soluciono?


Daniel




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida