我想不出这个问题的好标题,但这里就是......
我有这个SQL查询
SELECT
J.SRV_JOB_ID,
C.UNIT_COST * C.QTY AS COST_PRICE,
E.SERIAL_NO
FROM
SRV_JOB J
LEFT JOIN SRV_JOB_COST C ON C.SRV_JOB_ID = J.SRV_JOB_ID
LEFT JOIN SRV_JOB_EQUIPMENT JE ON JE.SRV_JOB_ID = J.SRV_JOB_ID
LEFT JOIN SRV_EQUIPMENT E ON E.SRV_EQUIPMENT_ID = JE.SRV_EQUIPMENT_ID
WHERE
j.srv_job_id = 52423
为了问题的目的而略微简化,并给出了这些结果;
srv_job_id cost_price serial_no
52423 89 400887
52423 89 400888
52423 89 400889
因为有一个作业的ID为52423,成本为89,但有三个相关的序列号。
结果没有任何问题,但这是误导性的,因为看起来每个序列号的成本都是89,而实际上这三个的总成本是89.
如何防止89的成本重复?我无法更改数据库架构,但我可以更改查询。
我想要的结果是
srv_job_id cost_price serial_no
52423 89 400887
52423 null 400888
52423 null 400889
答案 0 :(得分:1)
我把它分成两个单独的查询。一个列出作业详细信息,一个列出每个作业的序列号。
谢谢你的帮助。您的评论让我以不同的方式思考问题。