Pregunta
Tengo una pregunta similar a éste / ProductSales
Quiero hacer esa misma consulta, pero en lugar de sólo la comprobación cantidad Quiero comprobar "total" (es decir. La cantidad * precio). "Precio" es un campo en la tabla de ventas.
Ésta es la consulta inicial sugerido en ese enlace:
SELECT p.[name]
FROM products p
WHERE p.product_id in (SELECT s.product_id
FROM productsales s
WHERE s.[date] between @dateStart and @dateEnd
GROUP BY s.product_id
HAVING Sum(s.quantity) > @X )
Así que en lugar de la suma (s.quantity) tengo que tener (s.quantity * s.price) por cada venta que se añade a continuación y en comparación con @X. (El precio puede ser diferente para cada venta)
Solución
HAVING (Sum(s.quantity*s.price)) > @X
puede hacer el truco?
Otros consejos
(La respuesta de Cagcowboy fue marcado como aceptado, pero el comentario parece indicar que no funcionó, por lo que este es otro enfoque)
Este código utiliza una tabla derivada a trabajar primero los "totales" para cada producto, a continuación, la agrupación etc. es en capas sobre la parte superior de ello.
SELECT p.name from products p
WHERE p.product_id IN
(SELECT product_id from
(SELECT product_id, (quantity * price) as total
FROM productsales WHERE date between @dateStart and @dateEnd) as s
GROUP by s.product_id
HAVING sum(total) > @x)