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
 

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




Preguntas similares