Ayuda Urgente Por Favor
Publicado por ALEXIS (1 intervención) el 11/04/2005 20:50:43
Necesito ayuda con un Query en SQL: necesito seleccionar de la base de datos la suma total del precio de ventas de los productos del inventario, pero agrupado por “Genero” y dependiendo de la fecha seleccionada (por ejemplo del 1-30, 31-60). Lo que tengo hasta ahora me funciona, pero quiero agruparlo por Genero como le dije y no me funciona. El Query que tengo me da el resultado pero en detalle de articulo por articulo, y lo quiero agrupado por genero, no se si me he explicado bien. De cualquier modo, gracias y disuclpe la molestia pero no tengo donde mas recurrir.
El query que tengo es este:
SELECT GENRE.NAME,
(PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE) AS Total, (case WHEN datediff(d, products.lastupdate, getdate()) <=30 THEN PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICE30,
(CASE WHEN datediff(d, products.lastupdate, getdate()) >=31 and datediff (d, products.lastupdate, getdate()) <=60 THEN PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICE60,
(CASE WHEN datediff(d, products.lastupdate, getdate()) >=61 AND datediff(d, products.lastupdate, getdate()) <=90 then PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICE90,
(CASE WHEN datediff(d, products.lastupdate, getdate()) >=91 THEN PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICEMORETHAN90
FROM PRODUCTS INNER JOIN GENRE ON GENRE.GENREID=PRODUCTS.GENREID
WHERE PRODUCTS.LastUpdate<='04/11/2005'
Group by GENRE.NAME, PRODUCTS.QUANTITY, PRODUCTS.RETAILPRICE, PRODUCTS.LastUpdate, GENRE.GENREID
ORDER BY GENRE.NAME ASC
El cual me da como resultado:
GENERO Total inicial 1-30dias 31-60 61-90 90+
BALADA DEL RECUERDO 55.0000 .0000 .0000 55.0000 .0000
BALADA DEL RECUERDO 60.0000 .0000 .0000 .0000 60.0000
BALADA DEL RECUERDO 60.0000 0000 .0000 .0000 60.0000
BALADA DEL RECUERDO 79.9500 .0000 .0000 .0000 79.9500
BALADA DEL RECUERDO 59.9400 .0000 .0000 59.9400 .0000
BALADA HOMBRE -22.0000 -22.0000 .0000 .0000 .0000
BALADA HOMBRE -6.7500 .0000 .0000 .0000 -6.7500
BALADA HOMBRE -7.0000 .0000 .0000 .0000 -7.0000
BALADA HOMBRE -7.0000 .0000 .0000 .0000 -7.0000
BALADA HOMBRE -7.0000 .0000 .0000 .0000 -7.0000
BALADA HOMBRE -7.5000 .0000 .0000 .0000 -7.5000
BALADA HOMBRE -9.9900 .0000 .0000 .0000 -9.9900
BALADA HOMBRE -9.9900 .0000 .0000 .0000 -9.9900
BALADA HOMBRE -10.0000 .0000 .0000 -10.0000 .0000
En este caso quisiera obtener un solo total grupal de los productos “balada del recuerdo”, etc. y no uno por uno.
El query que tengo es este:
SELECT GENRE.NAME,
(PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE) AS Total, (case WHEN datediff(d, products.lastupdate, getdate()) <=30 THEN PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICE30,
(CASE WHEN datediff(d, products.lastupdate, getdate()) >=31 and datediff (d, products.lastupdate, getdate()) <=60 THEN PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICE60,
(CASE WHEN datediff(d, products.lastupdate, getdate()) >=61 AND datediff(d, products.lastupdate, getdate()) <=90 then PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICE90,
(CASE WHEN datediff(d, products.lastupdate, getdate()) >=91 THEN PRODUCTS.QUANTITY * PRODUCTS.RETAILPRICE ELSE 0 END) AS PRICEMORETHAN90
FROM PRODUCTS INNER JOIN GENRE ON GENRE.GENREID=PRODUCTS.GENREID
WHERE PRODUCTS.LastUpdate<='04/11/2005'
Group by GENRE.NAME, PRODUCTS.QUANTITY, PRODUCTS.RETAILPRICE, PRODUCTS.LastUpdate, GENRE.GENREID
ORDER BY GENRE.NAME ASC
El cual me da como resultado:
GENERO Total inicial 1-30dias 31-60 61-90 90+
BALADA DEL RECUERDO 55.0000 .0000 .0000 55.0000 .0000
BALADA DEL RECUERDO 60.0000 .0000 .0000 .0000 60.0000
BALADA DEL RECUERDO 60.0000 0000 .0000 .0000 60.0000
BALADA DEL RECUERDO 79.9500 .0000 .0000 .0000 79.9500
BALADA DEL RECUERDO 59.9400 .0000 .0000 59.9400 .0000
BALADA HOMBRE -22.0000 -22.0000 .0000 .0000 .0000
BALADA HOMBRE -6.7500 .0000 .0000 .0000 -6.7500
BALADA HOMBRE -7.0000 .0000 .0000 .0000 -7.0000
BALADA HOMBRE -7.0000 .0000 .0000 .0000 -7.0000
BALADA HOMBRE -7.0000 .0000 .0000 .0000 -7.0000
BALADA HOMBRE -7.5000 .0000 .0000 .0000 -7.5000
BALADA HOMBRE -9.9900 .0000 .0000 .0000 -9.9900
BALADA HOMBRE -9.9900 .0000 .0000 .0000 -9.9900
BALADA HOMBRE -10.0000 .0000 .0000 -10.0000 .0000
En este caso quisiera obtener un solo total grupal de los productos “balada del recuerdo”, etc. y no uno por uno.
Valora esta pregunta


0