2016-04-26 8 views
0

Bitte helfen Sie mir, mit case-Anweisung zu zählen.So verwenden Sie die Zählung innerhalb des Falls

Ich möchte dieses Ergebnis:

Equal : 50 
GT : 25 
LT : 15 

Unten ist mein Code:

select Input, 
     CASE 
     when math = '=' then 
     count(case when Input = UDTarget then Input else 0 end) 
     end as Equals, 
     CASE 
     when math = '>' then 
     count(case when ISNUMERIC(Input) < ISNUMERIC(UDTarget) then Input else 0 end) 
     end as GT, 
     CASE when math = '<' then 
     count(case when ISNUMERIC(Input) > ISNUMERIC(UDTarget) then Input else 0 end) 
     END as LT 
FROM [NEWSEMAKPI].[dbo].[NewCriteria] NC 
inner join [NEWSEMAKPI].[dbo].[UpdateData] UD ON UD.Cid = NC.Id 
where InputWeek='15' 
group by Input 
+0

Welches Ergebnis erhalten Sie derzeit? Was ist dein Beitrag? Ihre erwartete Leistung bedeutet nichts ohne sie. – Blorgbeard

+0

Ich habe diesen Fehler: Msg 8120, Ebene 16, Status 1, Zeile 3 Die Spalte 'NEWSEMAKPI.dbo.NewCriteria.Math' ist in der Auswahlliste ungültig, da sie weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten ist. – user3538475

+0

überprüfen Sie bitte hier auf dem Weg, um eine Frage zu stellen: https: //spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ – TheGameiswar

Antwort

1

Ihr Fehler angezeigt wird, weil Sie nicht math in Ihrer group by Klausel gelegt hat. Also sollten Sie es innen setzen:

select Input, 
     CASE 
     when math = '=' then 
     count(case when Input = UDTarget then Input else 0 end) 
     end as Equals, 
     CASE 
     when math = '>' then 
     count(case when ISNUMERIC(Input) < ISNUMERIC(UDTarget) then Input else 0 end) 
     end as GT, 
     CASE when math = '<' then 
     count(case when ISNUMERIC(Input) > ISNUMERIC(UDTarget) then Input else 0 end) 
     END as LT 
FROM [NEWSEMAKPI].[dbo].[NewCriteria] NC 
inner join [NEWSEMAKPI].[dbo].[UpdateData] UD ON UD.Cid = NC.Id 
where InputWeek='15' 
group by Input, math 
+0

Bekannt. Vielen Dank. es funktioniert – user3538475

Verwandte Themen