SQL Server如何链接这些表?

时间:2013-03-15 11:26:25

标签: sql-server

我正试图从两张不完全匹配的表中获取信息

table1我有这样的销售数据:

OrderNo   Qty  Price 
--------------------
12345      2    123

table2我有与同一订单相关的数据,但我有两条单独的行,而不是一条数量为2的行:

OrderNo   Line   Qty   SerialNo
--------------------------------
12345      1      1      6789
12345      2      1      6790

我希望看到的是两个表中的信息 - 我有Table1中的定价数据和Table2中的序列号,我正在尝试创建一个显示总价格的报告订单,但每个单独行的序列号。

到目前为止,使用左连接,我只能获得带有重复记录的数据,上面的示例返回四行,每个序列号两行。

对于上面的例子,我想看到的是三行;一个标题行包含来自table1的两行(带有空serialNo)和来自Table2的两行以及价格为空的两行,这是可行的吗?

这是一个例子......

ADEPT.dbo.SM_MOVEMENTS是我的表1 - SAM.dbo.productspurchased是table2

   ` select

Adept.dbo.STK_MOVEMENTS.SM_REFERENCE,
SAM.dbo.productspurchased.adeptref,
Adept.dbo.STK_MOVEMENTS.SM_costprice,
Adept.dbo.STK_MOVEMENTS.SM_Quantity,
Adept.dbo.STK_MOVEMENTS.SM_Stock_code,
SAM.dbo.productspurchased.fullproductcode,
SAM.dbo.productspurchased.SerialNo

from

adept.dbo.STK_MOVEMENTS left join SAM.dbo.productspurchased on
Adept.dbo.STK_MOVEMENTS.SM_REFERENCE COLLATE sql_latin1_general_cp1_ci_as = SAM.dbo.productspurchased.adeptref COLLATE sql_latin1_general_cp1_ci_as

where 

SM_REFERENCE = '184913'`

对于此示例,订单184913在ADEPT中的数量为3,在SAM中的数量为3行。

我得到了愚蠢的结果......

SM_REFERENCE    adeptref    SM_costprice    SM_Quantity SM_Stock_code   fullproductcode SerialNo
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC    2071639819 | PRODUCT KEY: LBB6V-UKJ3D-NC6EN-3G3C3-RQJQH
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC    2071639819 | PRODUCT KEY: LBB6V-UKJ3D-NC6EN-3G3C3-RQJQH
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC    2071639819 | PRODUCT KEY: LBB6V-UKJ3D-NC6EN-3G3C3-RQJQH
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC  Serial Number:  2071639820 | Product Key: SJVBS-GJ7J5-8VP4H-9RQPP-R6RWN
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC  Serial Number:  2071639820 | Product Key: SJVBS-GJ7J5-8VP4H-9RQPP-R6RWN
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC  Serial Number:  2071639820 | Product Key: SJVBS-GJ7J5-8VP4H-9RQPP-R6RWN
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC  Serial Number:  2071639819 | Product Key: LBB6V-UKJ3D-NC6EN-3G3C3-RQJQH
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC  Serial Number:  2071639819 | Product Key: LBB6V-UKJ3D-NC6EN-3G3C3-RQJQH
184913  184913  89.72   1   I-EN-M-SOC  I-EN-M-SOC  Serial Number:  2071639819 | Product Key: LBB6V-UKJ3D-NC6EN-3G3C3-RQJQH

你可以看到总共9行。

我加入时并不是那么棒!

0 个答案:

没有答案