[英]SQL - Nested Select in From claus with Count
当我使用以下代码(来自Oracle的人,他说没有理由不起作用...)时,系统会通知我,最后一个')'语法不正确。 知道如何将其更改为“ SQL适当的”吗? 我的想法是它不喜欢最后一个选择语句。
select
*
from
CPINInvest
where
[Case ID||] not in
(
select [Case ID||]
from
(
select [Case ID||], count(*)
from CPINComm140
where [Role CD||]='PRI||'
group by [Case ID||]
having count(*)=1
)
)
可以缩短。
select * from CPINInvest
where [Case ID||] not in (
select [Case ID||]
from CPINComm140
where [Role CD||]='PRI||'
group by [Case ID||]
having count(*)=1
);
但是认真的说,字段名中的管道? k!
原始查询失败的原因是:
1)count(*)需要一个别名。 例如[总计]
2)tsql有一个奇怪的要求,即某些子查询需要别名
sql希望您为子查询提供别名,即使不使用别名也是如此。 这将起作用,但@LukStorms较短的版本更好。
select *
from CPINInvest
where
[Case ID||] not in
(
select [Case ID||]
from
(
select [Case ID||], count(*)
from CPINComm140
where [Role CD||]='PRI||'
group by [Case ID||]
having count(*)=1
) x
) y
使用以下查询。 您忘记为子表添加别名。
select
*
from
CPINInvest
where
[Case ID||] not in
(
select [Case ID||]
from
(
select [Case ID||], count(*)
from CPINComm140
where [Role CD||]='PRI||'
group by [Case ID||]
having count(*)=1
)t
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.