我试图总结顾问通过执行服务获得的总成本,但由于我需要从服务表中获取成本并从另一个表中执行服务量,因此总成本需要为从两个不同的表中组合两个不同的列。但是,它不会总结重复行的总成本。
有两个表,Services_Performed和Service。
Service_Performed表
Service_id|Temployee_id|ServicePerformed_Amount
----------|------------|-----------------------
2| 1| 2
----------|------------|-----------------------
4| 1| 1
----------|------------|-----------------------
1| 3| 3
----------|------------|-----------------------
9| 3| 5
----------|------------|-----------------------
3| 5| 5
----------|------------|-----------------------
10| 5| 4
----------|------------|-----------------------
8| 5| 1
服务表
Service_id|Service_cost
----------|------------
1| 18000
----------|------------
2| 20000
----------|------------
3| 34000
----------|------------
4| 16000
----------|------------
5| 40588
----------|------------
6| 20358
----------|------------
7| 14852
我使用以下查询来获取服务的总成本,具体取决于服务的成本和执行的数量。
SELECT
TECHNICAL.TEMPLOYEE_ID,CONSULTANT.EMP_NAME,
SERVICES_PERFORMED.SP_AMOUNT * SERVICE.SER_COST AS TotalCost
FROM SERVICES_PERFORMED,TECHNICAL,CONSULTANT,SERVICE
WHERE TECHNICAL.TEMPLOYEE_ID = SERVICES_PERFORMED.TEMPLOYEE_ID AND
TECHNICAL.TEMPLOYEE_ID = CONSULTANT.EMPLOYEE_ID AND
SERVICES_PERFORMED.SERVICE_ID = SERVICE.SERVICE_ID
ORDER BY TotalCost DESC;
结果如下:
Temployee_id|Employee_name|TotalCost
------------|------------|----------
3| Kim| 179450
------------|------------|----------
5| David| 170000
------------|------------|----------
5| David| 143480
------------|------------|----------
7| Andy| 122148
------------|------------|----------
9| Oscar| 121764
------------|------------|----------
3| Kim| 54000
------------|------------|----------
1| Danny| 40000
但我想要做的主要是提高总费用,看看每个人从表现服务中获得的最多。我如何总结相同名称的金额。
答案 0 :(得分:1)
尝试使用以下
SELECT
TECHNICAL.TEMPLOYEE_ID,CONSULTANT.EMP_NAME,
SUM(SERVICES_PERFORMED.SP_AMOUNT * SERVICE.SER_COST) AS TotalCost
FROM SERVICES_PERFORMED,TECHNICAL,CONSULTANT,SERVICE
WHERE TECHNICAL.TEMPLOYEE_ID = SERVICES_PERFORMED.TEMPLOYEE_ID AND
TECHNICAL.TEMPLOYEE_ID = CONSULTANT.EMPLOYEE_ID AND
SERVICES_PERFORMED.SERVICE_ID = SERVICE.SERVICE_ID
GROUP BY TECHNICAL.TEMPLOYEE_ID,CONSULTANT.EMP_NAME
ORDER BY TotalCost DESC;
答案 1 :(得分:0)
试试这个:
SELECT a.temployee_id,b.emp_name,Sum(c.service_cost)
FROM service_performed a , consultatnt b,service c
where a.temployee_id=b.temployee_id AND a.service_id=c.service_id
GROUP BY a.temployee_id,b.emp_name