【发布时间】:2020-05-29 08:30:24
【问题描述】:
我有 3 张桌子
Customer
Customer |Name
1002 |ABB
2006 |Aberdeen C
.
.
销售收入表
Customer|Inv. |Product |Sales Amount |Gross Margin
1002 |600 |5 |8000 |125
1002 |601 |20 |0 |-10
1002 |602 |0 |320 |160
2006 |603 |7 |120 |0
.
.
应收账款表
Customer|Inv. |Product |Balance |Line Amount |Amount
1002 |500 |0 |150 |NULL |150
1002 |600 |5 |8000 |8000 |8000
1002 |601 |20 |0 |0 |0
1002 |602 |0 |0 |160 |160
2006 |603 |7 |120 |120 |0
.
.
我想通过加入销售收入和应收帐款表来创建客户视图:
Customer|Name|Inv.|Product|Sales Amount |Gross Margin |Balance |Line Amount
1002 |ABB |500 |0 |NULL |NULL |150 |150
1002 |ABB |600 |5 |8000 |125 |8000 |8000
1002 |ABB |601 |20 |0 |-10 |0 |0
1002 |ABB |602 |0 |320 |160 |160 |160
2006 |ABB |603 |7 |120 |0 |120 |0
.
.
我试过了
CREATE or alter VIEW [dbo].[custmermasterview] as
SELECT [Customer]
,[Name]
,[Inv]
,[Sales Amount]
,[Gross Margin]
,[Balance]
,isnull([Line Amount],[Amount]) as LineAmount
,[dbo].[SalesRevenue].[product_key]
FROM [PDI].[dbo].[Customer]
LEFT JOIN [dbo].[SalesRevenue] ON
([PDI].[dbo].[Customer].[customer_key] = [dbo].[SalesRevenue].[customer_key] and
LEFT JOIN [dbo].[AccountReceivables] ON
([dbo].[SalesRevenue].[Inv] = [dbo].[AccountReceivables].Inv)
显然,它与 SalesRevenue 一起加入,因此不会提取来自 AccountReceivables 的记录。 如何获得所需的输出?
【问题讨论】:
标签: sql-server join multiple-tables