在这两个查询中只进行一个查询时,我需要一些帮助:
SET @SQL = 'SELECT ' + CONVERT(VARCHAR, @listid) + ' AS listid, optout, COUNT(*) AS nbEmail, ''' + CONVERT(VARCHAR, @date, 120) + ''' AS date
FROM list_' + CONVERT(VARCHAR, @listid) + '.dbo.members (NOLOCK)
GROUP BY optout
SET @SQL2 = 'SELECT ' + CONVERT(VARCHAR, @listid) + ' AS listid, Optout, COUNT(*) AS nbSMS, ''' + CONVERT(VARCHAR, @date, 120) + ''' AS date
FROM list_' + CONVERT(VARCHAR, @listid) + '.dbo.sms_members (NOLOCK)
GROUP BY Optout
我需要的是两列,每列一个,而不是两个查询。 “ listid”将是相同的,输出也将相同,并且日期相同。
非常感谢
编辑:
我希望结果为:
listid | Optout | nbEmail | nbSMS | Date
-------+--------+---------+-------+----------
902 | 56 | 23 | 36 | 22/10/17
902 | 45 | 27 | 16 | 22/10/17
902 | 14 | 22 | 96 | 22/10/17
答案 0 :(得分:0)
在两个表之间的optout
上写一个FULL OUTER JOIN,并在每个表中输入COUNT DISTINCT PK值以获取两个计数。