我有
下的两个表格 SalesDetails PurchaseDetails
Date SaleOrderId ProductId Qty Date PurcsOrderId ProductId Qty
2/2/12 S_1 P_1 4 1/2/12 PO_1 P_1 50
3/2/12 S_2 P_1 5 4/2/12 PO_2 P_1 50
3/2/12 S_2 P_2 7
6/2/12 S_3 P_1 3
9/2/12 S_4 1 5
from these two tables i want to show a report like this
Product Inquiry Report
ProductId: P_1
Date TrId Debit Credit
1/2/12 PO_1 50
2/2/12 S_1 4
3/2/12 S_2 5
4/2/12 PO_2 50
6/2/12 S_3 3
此处购买细节的数量列变为'借记卡'在报告和SalesDetails中的数量成为' Credit'在Report.In报告中的列,该事务应该显示为Date,如图所示有没有办法在单个查询中执行此操作,如果是,那么如何?如果没有,那么还有其他解决方案吗?提前致谢
答案 0 :(得分:3)
使用UNION:
SELECT Date, SaleOrderID as TrId, NULL as Debit, Qty as Credit
FROM SalesDetails
UNION
SELECT Date, PurcsOrderId AS TrId, Qty AS Debit, NULL as Credit
FROM PurchaseDetails
ORDER BY Date
答案 1 :(得分:0)
SELECT *
FROM
(
SELECT sa.Date, sa.SaleOrderId AS TRId, Null AS Debit, sa.Qty AS Credit
FROM SalesDetails sa
UNION
SELECT pa.Date, pa.PurcsOrderId AS TRId, pa.Qty AS Debit, Null AS Credit
FROM PurchaseDetails pa
) m
ORDER BY 1
如果您希望值为0
,请分别使用0 AS Debit
和0 AS Credit
。