I can't think of a good title for this question but here goes..
I have this SQL query
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
which is somewhat simplified for the purpose of the question, and gives these results;
srv_job_id cost_price serial_no
52423 89 400887
52423 89 400888
52423 89 400889
because there is one job with an id of 52423 and a cost of 89, but there are three associated serial numbers.
There is nothing wrong with the result, but it is misleading because it looks like each serial number has a cost of 89, when in fact the total cost for all three is 89.
How can I prevent the cost of 89 being duplicated? I can't change the database schema, but i can change the query.
The result i would like would be
srv_job_id cost_price serial_no
52423 89 400887
52423 null 400888
52423 null 400889
cost_priceis calculated, think about changing that. What is the relation betweencost_priceandserial_noyou are looking for?