我有三个表像我描述如下:加盟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
我的目标是显示表TransactionDetail上的BillingDetailID之间的差异,我称之为“之前”和BillingDetailID表BillingDetail我是由“之后”调用。 任何人都可以给我一个方向?
在此先感谢
你如何选择哪你想要的四个可能的行中? –
您试图应用于此查询的规则是什么? – JsonStatham
@selalu ...只需在结算明细上添加一项条件(a.billingdetailid = c.billingdetailid) – Kishore