我有这3张桌子:
APPOINTMENT
:APPT_TIME,CUST_ID,STY_ID,SERVICE_ID,PROD_NUM PRODUCT
:PROD_NUM,PROD_TYPE,PROD_NAME,PROD_VENDOR,PRICE SERVICE_
:SERVICE_ID,SERVICE_DESC,EST_TIME,PRICE 我需要做的是为PRICE
表中的PRODUCT
和每个约会/客户的PRICE
表中的SERVICE_
求和。
以下是结果需要:
CUST_ID final_price
------------
1234 45.16
4678 63.25
4587 78.58
7894 25.15
答案 0 :(得分:1)
假设prod_num
和service_id
是各自表中的唯一键(或主键),则无需进行聚合。要完成此操作,您应该使用left outer join
,以防某些约会没有这两个字段:
select a.cust_id,
(coalesce(p.price, 0) + coalesce(s.price, 0)) as Final_Price
from appointment a left outer join
product p
on p.prod_num = a.prod_num left outer join
service s
on s.service_id = a.service_id;
如果给定产品或服务的引用表中可能有多行,那么您应该在加入之前进行聚合。
答案 1 :(得分:0)
SELECT A.CUST_ID
, SUM(ISNULL(P.PRICE,0) + ISNULL(S.PRICE,0)) Final_Price
FROM APPOINTMENT A
INNER JOIN PRODUCT P ON A.PROD_NUM = P.PROD_NUM
INNER JOIN SERVICE S ON S.SERVICE_ID = A.SERVICE_ID
GROUP BY A.CUST_ID