如何防止SQL中的重复值?

时间:2014-03-10 12:50:36

标签: sql

我想不出这个问题的好标题,但这里就是......

我有这个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

1 个答案:

答案 0 :(得分:1)

我把它分成两个单独的查询。一个列出作业详细信息,一个列出每个作业的序列号。

谢谢你的帮助。您的评论让我以不同的方式思考问题。