我在下面写了两个查询,每个查询产生一行数据。水平连接两个查询
什么是最好的方式来组合它们,使我只有一行数据的LEFT
?
这些都是未来 databases
命名:ASN01]和[dsi_ASN_dsicx]
我70对这样的数据库,但我只显示一个简单性。
三字母首字母缩写词ASN在两个数据库名称中都是通用的这一事实没有错,如果需要可以成为解决方案的一部分。
当前结果:
网站,Elligence(标题) ASN,100.00
网站,GP_Total(标题) ASN,120.00
期望的结果:
网站,GP_Total, Elligence(header) ASN,120.00,100.00
SELECT 'ASN' AS Site ,
CASE SUM(perdblnc)
WHEN NULL THEN 0
ELSE -1 * SUM(PERDBLNC)
END AS GP_Total
FROM [ASN01].[dbo].[GL10110] T1
LEFT OUTER JOIN [ASN01].[dbo].[GL00105] T2 ON [T1].[ACTINDX] = [T2].[ACTINDX]
WHERE YEAR1 = 2012
AND PERIODID IN ('2')
AND ACTNUMST IN ('4200-0000-C', '6940-0000-C', '6945-0000-C',
'6950-0000-C')
SELECT 'ASN' AS [Site] ,
SUM(pi.amount) AS [Elligence]
FROM [dsi_ASN_dsicx].dbo.charge c
LEFT JOIN [dsi_ASN_dsicx].dbo.paymentitem pi ON c.idcharge = pi.chargeid
LEFT JOIN [dsi_ASN_dsicx].dbo.payment p ON pi.paymentid = p.idpayment
LEFT JOIN [dsi_ASN_dsicx].dbo.paymenttype pt ON p.paymenttypeid = pt.idpaymenttype
WHERE pi.amount != 0
AND pt.paymentmethod NOT IN ('5', '7')
AND pt.paymentmethod IS NOT NULL
AND p.sdate >= '20120201'
AND p.sdate <= '20120229'
这看起来像两组不同的数据。什么定义了一个共同的行?这些查询甚至产生相同数量的行吗? – Paparazzi 2012-03-13 00:10:17
它在帖子中说,他只收到每个查询@Blam的一行。他希望他们加入一行。 – ImGreg 2012-03-13 02:36:47