繁体   English   中英

具有多个表的复杂sql查询

[英]Complex sql query with multiple tables

我有3张桌子:

顾客

ID_CUSTOMER
NAME

制品

ID_PRODUCT
PRODUCTNAME
PRICE

命令

ID_ORDER
CUSTOMER_ID
PRODUCT_ID
QUANTITY

如何选择订购10万美元或以上的所有客户?

select c.*
from customers c
inner join orders o on o.customer_id = c.id_customer
inner join products p on p.id_product = o.product_id
group by c.id_customer
having sum(p.price * o.quantity) >= 10000

尝试类似的东西:

SELECT C.ID_CUSTOMER, C.Name, 
      SUM(P.PRICE * O.QUANTITY) AS Total FROM Customers C 
      JOIN Orders O ON C.CUSTOMER_ID = O.CUSTOMER_ID
      JOIN Procucts P ON P.PRODUCT_ID = O.PRODUCT_ID
      GROUP BY C.ID_CUSTOMER, C.Name
      HAVING SUM(P.PRICE * O.QUANTITY) >= 10000

尝试这个:

 SELECT   a.ID_CUSTOMER, 
          a.NAME
   FROM   CUSTOMERS a
            INNER JOIN ORDERS b 
              ON b.CUSTOMER_ID = a.ID_CUSTOMER
            INNER JOIN PRODUCTS c
              ON c.ID_PRODUCT = b.product_id
GROUP BY  a.ID_CUSTOMER, a.NAME
  HAVING  SUM(c.PRICE * b.QUANTITY) >= 10000

这不是一个复杂的查询。 另一种做同样事情的语法:

SELECT C.ID_CUSTOMER, C.NAME, SUM(P.PRICE * O.QUANTITY) TOTAL
  FROM Products P, Customers C, Orders O
 WHERE O.CUSTOMER_ID = C.ID_CUSTOMER 
   AND O.PRODUCT_ID = P.ID_PRODUCT
 GROUP BY C.ID_CUSTOMER, C.NAME
HAVING SUM(P.PRICE * O.QUANTITY) >= 10000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM