我的表中有很多種statusid。某些值意味着表中的工作是「完整的」。SQL Server案例計數在子查詢中Jelp?
如果某些內容是「完整的」,則分組checkid的所有statusid值都是 1或10或40.狀態值不是連續的(有很多statusid值,這只是一個摘錄)。有人可以展示我可以如何在案例子查詢中使用In Clause,或者只是一種更清晰的方式來編寫它?
預期的結果集
checkid iscomplete
3 0
4 1
5 0
6 0
4是完整的,因爲只有一行,它有一個「10」。 3不完整,因爲其中一個值爲「1」,但其他值爲「2」。 5不完整,因爲它只有「30」個值。 6不完整,因爲它有一個「40」,但它也有一個「30」。
DML:
create table #test1 (test1id int identity primary key , checkid int , statusid int)
insert into #test1 (checkid , statusid) values (3 , 1)
insert into #test1 (checkid , statusid) values (3 , 2)
insert into #test1 (checkid , statusid) values (3 , 2)
insert into #test1 (checkid , statusid) values (4 , 10)
insert into #test1 (checkid , statusid) values (5 , 30)
insert into #test1 (checkid , statusid) values (5 , 30)
insert into #test1 (checkid , statusid) values (6 , 30)
insert into #test1 (checkid , statusid) values (6 , 40)
select checkid
, iscomplete = (case when count(*) Where #test1.statusid In (1,10,40) Then 1)
from #test1
group by checkid
錯誤:
An expression of non-boolean type specified in a context where a condition is expected, near 'Where'.
感謝。編寫一個查詢,以滿足要求