Я видел несколько примеров того, что я пытаюсь сделать, используя COALESCE и FOR XML (кажется, лучшее решение).Я просто не могу понять синтаксис правильно.
Вот что у меня есть (я сокращу поля только до ключевых):
Table Fields
------ -------------------------------
Requisition ID, Number
IssuedPO ID, Number
Job ID, Number
Job_Activity ID, JobID (fkey)
RequisitionItems ID, RequisitionID(fkey), IssuedPOID(fkey), Job_ActivityID (fkey)
Мне нужен запрос, который будетперечислите ОДНУ реквизицию в каждой строке с соответствующими заданиями и IssuedPO.(Номер заявки начинается с «R-», а номер задания начинается с «J-»).
Пример:
R-123 |"PO1; PO2; PO3" |"J-12345; J-6780"
Конечно, Адам!
Вот запрос, который возвращает несколько строк.Я должен использовать внешние объединения, так как не все Реквизиции имеют RequisitionItems, которые назначаются Заданиям и / или IssuedPO (в этом случае их идентификаторы fkey, разумеется, будут нулевыми).
SELECT DISTINCT Requisition.Number, IssuedPO.Number, Job.Number
FROM Requisition
INNER JOIN RequisitionItem on RequisitionItem.RequisitionID = Requisition.ID
LEFT OUTER JOIN Job_Activity on RequisitionItem.JobActivityID = Job_Activity.ID
LEFT OUTER JOIN Job on Job_Activity.JobID = Job.ID
LEFT OUTER JOIN IssuedPO on RequisitionItem.IssuedPOID = IssuedPO.ID