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)

¿Fue útil?

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top