у меня есть три таблицы, как я описываю ниже:соединения двух или более таблиц в SQL
TransactionHeader
ID | ProcessID | BillingHeaderID
1 1 1
2 2 2
TransactionDetail
ID | ProcessID | BillingDetailID
1 1 1
2 1 2
BillingDetail
BillingDetailID | BillingHeaderID | Amount
3 2 10000
4 2 20000
5 2 10000
6 1 10000
7 1 10000
Я делаю это до сих пор
select
b.ID as ID_TransacHeader,
a.ID as ID_TransacDetail,
b.ProcessID
,a.BillingDetailID as Before
,c.BillingDetailID as After
from TransactionDetail a
inner join TransactionHeader b on a.ProcessID = b.ProcessID
inner join billingdetail c on b.BillingHeaderID = c.BillingHeaderID
, что я хотел бы получить в результате что-то вроде этого:
ID_TrnsacHeader | ID_TransacDetail | ProcessID | Before | After
1 1 1 1 6
1 2 1 2 7
Проблема мой запрос выше в результате чего-то вроде этого:
ID_TrnsacHeader | ID_TransacDetail | ProcessID | Before | After
1 1 1 1 6
1 2 1 2 6
1 1 1 1 7
1 2 1 2 7
Моя цель состоит в том, чтобы показать разницу между BillingDetailID в таблице TransactionDetail, которую я назвал «Before» и BillingDetailID в таблице BillingDetail, которую я вызвал «После». Любой может дать мне указания?
Заранее спасибо
Как вы выбираете, которые из четырех возможных строк, которые вы хотите? –
Каковы правила, которые вы пытаетесь применить к этому запросу? – JsonStatham
@selalu ... Просто добавьте еще одно условие при выставлении счетов (a.billingdetailid = c.billingdetailid) – Kishore