2016-08-17 35 views
1

这里有两种表交易Refundtransaction的Sql取得与联接数据

我想用加入和重复的数据应取来获取数据。

我使用此查询

select tr.transactionid, tr.customerid, tr.custname, 
     rt.Amount, rt.Refund_Amount, rt.transactionid, rt.referenceid 
from Transaction tr 
left join RefundTransaction rt on rt.referenceid = tr.transactionid 

它是不是给正确的数据。它不是从退款数据选择重复数据

Data and expected result

请帮助 我在这里插入图像,从中可以得到实际的场景。

+0

我认为对于提供的数据,您的查询将正常工作。它将为匹配的交易ID选择重复的退款交易。只有在选择查询游览第一列中进行更改才能替换为rt.transactionid。 –

回答

0

根据图片,您需要将TRANSACTION表放入LEFT JOIN。那么只有你可以从RefundTransaction表中获得所有条目。

SELECT rt.transactionid 
    ,tr.customerid 
    ,tr.custname 
    ,tr.Amount AS Refund_Amount 
    ,rt.transactionid 
    ,rt.referenceid 
    ,rt.Amount 
FROM RefundTransaction rt 
LEFT JOIN [TRANSACTION] tr ON rt.referenceid = tr.transactionid 
0

如果你要选择你必须做出一个完整的外所有提交的数据加入

select tr.transactionid, tr.customerid, tr.custname, rt.Amount, rt.Refund_Amount, rt.transactionid, rt.referenceid from Transaction tr full outer join RefundTransaction rt on rt.referenceid = tr.transactionid 

here你可以找到更多信息的加入

0

您正在为加入excatly相反。

这应该工作。

select tr.transactionid, tr.customerid, tr.custname, 
     rt.Amount, rt.Refund_Amount, rt.transactionid, rt.referenceid 
from RefundTransaction tr left join 
    Transaction rt 
    on rt.referenceid = tr.transactionid