I have an sql statement that gets repair orders and repair visits, howver i only want one particualr visit being pulled out but its pulling them all out and then duplicating the parts ordered, and i dont know what im doing wrong im sure there is really simple way round this but i dont know what is wrong with me today just cant see the obvious i dont think.
Below example data i just want to be able to see engineer 1 and the parts ordered.
Tables used are
- Tbl_property - just to get address etc
- tbl_repair_order - order raised
- tbl_repair_visit - all visits logged again order, this where both engineer names stored
- tbl_partorder - where parts are linked to order
Example data:
- Orderid: 123 - Engineer1 - Part 1
- Orderid: 123 - Engineer1 - Part 2
- Orderid: 123 - Engineer2 - part 1
Orderid: 123 - Engineer2 - part 2
SELECT dbo.tbl_repair_order.CONTRACT, dbo.tbl_property.PROPADDRESS, dbo.tbl_property.PROPNUMBER, dbo.tbl_property.FULLADDRESS, dbo.tbl_repair_order.ORDERID, dbo.tbl_repair_order.THEIRREF, dbo.tbl_repair_order.ORIGIN, dbo.tbl_repair_order.RAISEDDATE AS JOBRAISED, dbo.tbl_repair_order.ENGINEER AS ENG1, dbo.tbl_repair_visit.ENGINEER, dbo.tbl_partorder.EXSUPPLIERORDERID, dbo.tbl_partorder.SUPPLIER, dbo.tbl_partorder.RAISED AS PARTRAISED, dbo.tbl_partorder.CODE, dbo.tbl_partorder.ITEM, dbo.tbl_partorder.UNITCOST, dbo.tbl_partorder.QUANTITY, dbo.tbl_partorder.COST, dbo.tbl_partorder.EXPECTED, dbo.tbl_repair_visit.Status FROM dbo.tbl_property INNER JOIN dbo.tbl_repair_order ON dbo.tbl_property.PROPREF = dbo.tbl_repair_order.PROPREF INNER JOIN dbo.tbl_partorder ON dbo.tbl_repair_order.ORDERID = dbo.tbl_partorder.ORDERID LEFT OUTER JOIN dbo.tbl_repair_visit ON dbo.tbl_partorder.ORDERID = dbo.tbl_repair_visit.ORDERID WHERE (dbo.tbl_repair_order.CONTRACT = 'HOM') AND (dbo.tbl_repair_order.ORDERID = 4342) AND (dbo.tbl_repair_visit.Status = 'Parts Req')