Я - SQL newby, и я борюсь со следующим (упрощенным) запросом.SQL Server: несколько SELECT в одном запросе
Он должен извлечь номер учетной записи из основного файла (Master) и связанных транзакций из текущей таблицы (nTrans) и таблицы истории (nTransArc) с использованием общих полей номера учетной записи. Это прекрасно работает.
Часть, с которой я не могу работать, также необходимо извлечь транзакции Vat из таблиц VatTrans (Current) и VatTransArc (History), используя ссылку между TranCode в таблицах nTrans/nTransArc и VTranCode в Таблицы VatTrans/VatTransArc. Это код красного цвета между линиями (и более поздним INNER JOIN).
Может ли кто-нибудь помочь?
SELECT Mast.MAccNo,
Tran.TAccNo,Tran.TranCode,
Vat.VTranCode,Vat.TaxCode
FROM (SELECT AccNo,TranCode FROM nTrans
UNION ALL SELECT AccNo,TranCode FROM nTransArc)
'-------------------------------------------------------'
FROM (SELECT VTranCode,TaxCode FROM VatTrans
UNION ALL SELECT VTranCode,TaxCode FROM VatTransArc)
'-------------------------------------------------------'
Tran JOIN Master Mast ON Tran.TAccNo = Mast.MAccNo
INNER JOIN Vat ON Vat.VTranCode = Tran.TranCode
ORDER BY Mast.MAccNo
Вы можете комбинировать несколько наборов результатов вместе, используя UNION (который будет располагать один поверх другого) или JOIN (который объединит множества рядом). Каким должен быть конечный результат? –
Они должны быть бок о бок, поэтому INNER JOIN, но я не уверен в точном синтаксисе, чтобы сделать эту работу. Я пробовал все варианты, которые я могу придумать в SQL Management Studio, но все они придумывают ошибки (и очень загадочные сообщения об ошибках). –