Redian新闻
>
再问个 subquery的问题
avatar
m*2
2
SQL server 2005
运行下面的query:
SELECT p.[Code],
COUNT(*) AS leads,
SUM(CASE WHEN p.[Stage] ='ENR' THEN 1 ELSE 0 END) AS ENR1,
SUM (CASE WHEN (p.[Stage]='ENR' AND p.[ID] IN (
SELECT b.[ID] FROM tbl2 b)) then 1 else 0 end) AS ENR2 FROM tbl1 p
WHERE p.[Code] IN
(xxxx)
GROUP BY p.[Code]
ORDER BY p.[Code]
然后得到一个error message:
Msg 130, Level 15, State 1, Line 1
Cannot perform an aggregate function on an expression containing an
aggregate or a subquery
google了一下这个message,说是:
you cannot use subquery when
avatar
b*t
3
太厉害了!喜欢这个!
avatar
c*t
4
join tbl1 and tbl2 first, then sum

【在 m**********2 的大作中提到】
: SQL server 2005
: 运行下面的query:
: SELECT p.[Code],
: COUNT(*) AS leads,
: SUM(CASE WHEN p.[Stage] ='ENR' THEN 1 ELSE 0 END) AS ENR1,
: SUM (CASE WHEN (p.[Stage]='ENR' AND p.[ID] IN (
: SELECT b.[ID] FROM tbl2 b)) then 1 else 0 end) AS ENR2 FROM tbl1 p
: WHERE p.[Code] IN
: (xxxx)
: GROUP BY p.[Code]

avatar
h*q
5
我爸爸明年七十大寿,我妈特意绣的,另一个百福说是要给我。
她说字比画好绣。
avatar
m*2
6
但是join的话,
COUNT(*) AS leads,
SUM(CASE WHEN p.[Stage] ='ENR' THEN 1 ELSE 0 END) AS ENR1
这两个数就不对了,这两个只需要计tbl1里的。。。

【在 c**t 的大作中提到】
: join tbl1 and tbl2 first, then sum
avatar
r*g
7
你妈妈太厉害了!都不知道回哪个帖子好了:)

【在 h******q 的大作中提到】
: 我爸爸明年七十大寿,我妈特意绣的,另一个百福说是要给我。
: 她说字比画好绣。

avatar
B*g
8
"you cannot use subquery when you use SUM function. Use Join and filter the
records。"
人家不是说了用join吗?
SELECT p.[Code],
COUNT(*) AS leads,
SUM(CASE WHEN p.[Stage] ='ENR' THEN 1 ELSE 0 END) AS ENR1,
SUM(CASE WHEN p.[Stage] ='ENR' AND b.[ID] IS NOT NULL THEN 1 ELSE 0
END) AS ENR2
FROM tbl1 p LEFT JOIN tbl2 b ON p.[ID] = b.[ID]
GROUP BY p.[Code]

【在 m**********2 的大作中提到】
: SQL server 2005
: 运行下面的query:
: SELECT p.[Code],
: COUNT(*) AS leads,
: SUM(CASE WHEN p.[Stage] ='ENR' THEN 1 ELSE 0 END) AS ENR1,
: SUM (CASE WHEN (p.[Stage]='ENR' AND p.[ID] IN (
: SELECT b.[ID] FROM tbl2 b)) then 1 else 0 end) AS ENR2 FROM tbl1 p
: WHERE p.[Code] IN
: (xxxx)
: GROUP BY p.[Code]

avatar
s*e
9
给你妈妈买一个全光谱的灯吧,对眼晴好一点,homedepot,好像是20多块钱。
太赞了,这么能干的妈妈。

【在 h******q 的大作中提到】
: 给我爸爸的。
: :)

avatar
B*g
10
ft,和我强包子。

【在 c**t 的大作中提到】
: join tbl1 and tbl2 first, then sum
avatar
h*q
11
全光谱的灯
what's the English name for it?
I want to buy one for my mom.
she's coming this month.
avatar
B*g
12
http://www.w3schools.com/Sql/sql_join_left.asp

【在 m**********2 的大作中提到】
: 但是join的话,
: COUNT(*) AS leads,
: SUM(CASE WHEN p.[Stage] ='ENR' THEN 1 ELSE 0 END) AS ENR1
: 这两个数就不对了,这两个只需要计tbl1里的。。。

avatar
c*t
13
haha

【在 B*****g 的大作中提到】
: ft,和我强包子。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。