我在返回存储过程时遇到一些问题,我需要所有选择才能创建图表。
这是我的程序:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[LastWeekQuotesByAssociate]
AS
BEGIN
SELECT
networkid, COUNT(isQuoteComplete) as Total
FROM
email
WHERE
(networkID = 'crbark00'
AND emailDateEntry > (DATEADD(WEEK, -1, GETDATE())))
GROUP BY
networkID
SELECT
networkid, COUNT(isQuoteComplete) as Total
FROM
email
WHERE
(networkID = 'crherb00'
AND emailDateEntry > (DATEADD(WEEK, -1, GETDATE())))
GROUP BY
networkID
SELECT
networkid,
COUNT(isQuoteComplete) as Total
FROM
email
WHERE
(networkID = 'crcalr25'
AND emailDateEntry > (DATEADD(WEEK, -1, GETDATE())))
GROUP BY
networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'craran00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crcerg25'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crdelj00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crromj00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crarrl00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crverj00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crmore00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crgomf00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crvarm00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crmong00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crarim00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crjimj00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crvilg00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
END
这是在执行时:
USE [Quotes]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[LastWeekQuotesByAssociate]
SELECT 'Return Value' = @return_value
GO
它只返回第一个选择!
任何暗示,有人可以帮助我在这里!
由于
答案 0 :(得分:0)
SELECT networkid,COUNT(isQuoteComplete) as Total from email
where networkID in ('crbark00','crxxxxx')
and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
答案 1 :(得分:0)
如果你这样做,你需要添加
UNION ALL
每次选择之间。
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crbark00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
UNION ALL
SELECT networkid,COUNT(isQuoteComplete) as Total from email where(networkID = 'crherb00'and emailDateEntry > (DATEADD(WEEK, -1, GETDATE()))) group by networkID
更好的解决方案是生成包含networkIds的列表/表格,然后在'中使用'像:
SELECT networkid,COUNT(isQuoteComplete) as Total
from email
where
networkID in ('crbark00', 'crbark01', 'crbark02')
and emailDateEntry > DATEADD(WEEK, -1, GETDATE())
group by networkID
也许可以使用subselect而不是列出每个networkId
答案 2 :(得分:0)
每个select语句完成后,请使用UNION ALL命令,例如Example 选择 networkid,COUNT(isQuoteComplete)为Total 从 电子邮件 哪里 (networkID =' crbark00' AND emailDateEntry> (DATEADD(WEEK,-1,GETDATE()))) 通过...分组 网络ID UNION ALL 选择 networkid,COUNT(isQuoteComplete)为Total 从 电子邮件 哪里 (networkID =' crherb00' AND emailDateEntry> (DATEADD(WEEK,-1,GETDATE()))) 通过...分组 网络ID