Problema con clausula group by

27/08/2004 - 14:36 por Juan Melas | Informe spam
Necesito de una tabla de compras, seleccionar la última compra, tengo 2
tablas, una de detalles(la tabla Compras) y otra de encabezados(la Tabla
Ivacomp) de la cual tomo la fecha, el problema se me presenta cuando tengo
más de un registro correspondiente a un determinado artículo en la misma
fecha, no logro que me devuelva un registro único por cada artículo.Utilizo
la sentencia que va al pie en SP pero al hacer el join en los artículos en
los que tengo más de una compra el mismo día me devuelve más de un registro
por artículo, probé poniendo la clausula Distinct pero no me funciona.


(SELECT TOP 100 PERCENT a.Codigo, b.fecha, a.Precio
FROM dbo.Compras a INNER JOIN
dbo.Ivacomp ON a.IdIvacomp = dbo.Ivacomp.IdIvacomp
INNER JOIN
(SELECT
dbo.Compras.Codigo,MAX(dbo.Ivacomp.Fecha) AS fecha
FROM dbo.Compras INNER JOIN
dbo.Ivacomp ON dbo.Compras.IdIvacomp = dbo.Ivacomp.IdIvacomp
where ivacomp.fecha<=?hasta
GROUP BY dbo.Compras.Codigo) b ON a.Codigo = b.Codigo AND
dbo.Ivacomp.Fecha = b.fecha
 

Leer las respuestas

#1 Maxi
27/08/2004 - 14:48 | Informe spam
Hola, quizas esto te sea util.


SELECT TOP 100 PERCENT a.Codigo, max(b.fecha) as fecha, a.Precio
FROM dbo.Compras a INNER JOIN
dbo.Ivacomp ON a.IdIvacomp = dbo.Ivacomp.IdIvacomp
INNER JOIN
(SELECT
dbo.Compras.Codigo,MAX(dbo.Ivacomp.Fecha) AS fecha
FROM dbo.Compras INNER JOIN
dbo.Ivacomp ON dbo.Compras.IdIvacomp = dbo.Ivacomp.IdIvacomp
where ivacomp.fecha<=?hasta
GROUP BY dbo.Compras.Codigo) b ON a.Codigo = b.Codigo AND
dbo.Ivacomp.Fecha = b.fecha
GROUP BY A.CODIGO,A.PRECIO

Un abrazo



Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Juan Melas" escribió en el mensaje
news:%
Necesito de una tabla de compras, seleccionar la última compra, tengo 2
tablas, una de detalles(la tabla Compras) y otra de encabezados(la Tabla
Ivacomp) de la cual tomo la fecha, el problema se me presenta cuando tengo
más de un registro correspondiente a un determinado artículo en la misma
fecha, no logro que me devuelva un registro único por cada


artículo.Utilizo
la sentencia que va al pie en SP pero al hacer el join en los artículos en
los que tengo más de una compra el mismo día me devuelve más de un


registro
por artículo, probé poniendo la clausula Distinct pero no me funciona.


(SELECT TOP 100 PERCENT a.Codigo, b.fecha, a.Precio
FROM dbo.Compras a INNER JOIN
dbo.Ivacomp ON a.IdIvacomp = dbo.Ivacomp.IdIvacomp
INNER JOIN
(SELECT
dbo.Compras.Codigo,MAX(dbo.Ivacomp.Fecha) AS fecha
FROM dbo.Compras INNER JOIN
dbo.Ivacomp ON dbo.Compras.IdIvacomp = dbo.Ivacomp.IdIvacomp
where ivacomp.fecha<=?hasta
GROUP BY dbo.Compras.Codigo) b ON a.Codigo = b.Codigo AND
dbo.Ivacomp.Fecha = b.fecha








Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.740 / Virus Database: 494 - Release Date: 16/08/2004

Preguntas similares