У меня есть заявление sql, которое получает заказы на ремонт и ремонтные посещения, однако я хочу, чтобы только одно частное посещение было извлечено, но оно вытаскивает их все, а затем дублирует заказанные детали, и я не знаю, что я делаю неправильно, я уверен, что там Это действительно простой способ обойти это, но я не знаю, что со мной не так сегодня, просто не вижу очевидного, о котором я не думаю.
Ниже приведен пример данных, я просто хочу увидеть инженера 1 и заказанные детали.
Используются таблицы
- Tbl_property - просто чтобы получить адрес и т. Д.
- tbl_repair_order - поднятый заказ
- tbl_repair_visit - все посещения снова регистрируются в порядке, где хранятся имена обоих инженеров
- tbl_partorder - где части связаны с заказом
Пример данных:
- Заказ: 123 - Инженер1 - Часть 1
- Заказ: 123 - Инженер1 - Часть 2
- Заказ: 123 - Инженер2 - часть 1
- Заказ: 123 - Инженер2 - часть 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')