Ich versuche eine Count-Anweisung zu machen, zeigen Sie, wie viele spezifische Versionen jede Kategorie hat. Das Problem ist, wenn eine Version über eins ist, wird das Ergebnis gelöscht.Count() Keeps Nullstellen
Wenn zum Beispiel drei von einer Kategorie mit zwei von ihnen eine Version haben, während die andere eine andere Version hat, wird die Zählung der Version mit zwei Instanzen '0' statt '2' in den Ergebnissen zeigen. Wenn die Kategorie nur eine Version hat, funktioniert sie perfekt. Nur wenn mehr als eine Instanz einer Version vorhanden ist, wird 0 ausgegeben.
Kann jemand reparieren? Ich gehe davon aus, dass es in meinem Fall Aussagen sind, aber ich bin mir nicht sicher.
Mein Code ist unten.
select Category, Count(Case When Version = 'Offer' then 1 end) as Offers, Count(Case When Version = 'No Offer' then 1 end) as [No Offers] from (
Select *, ROW_NUMBER() over (Partition By Category order by version) as GroupOrder, DENSE_RANK() over (order by category) as GroupNo From Input
) A
where groupno in
(
select groupno from (
Select *, ROW_NUMBER() over (Partition By Category order by version) as GroupOrder, DENSE_RANK() over (order by category) as GroupNo From Input
) A where GroupOrder > 1) and ID not in
(
select ID from
(
Select *, ROW_NUMBER() over (Partition By Category, Version order by version) as GroupOrder, DENSE_RANK() over (order by category, Version) as GroupNo From Input
) A
where groupno in
(
select groupno from
(
Select *, ROW_NUMBER() over (Partition By Category, Version order by version) as GroupOrder, DENSE_RANK() over (order by category, Version) as GroupNo From Input
) A where GroupOrder > 1)
)
group by Category
order by Category
wenn Sie zählen nur 1'en Sie es ändern können, um Summen- und sehen, wenn Sie gleiche Ergebnis .. 'SUM (CASE WHEN Version = 'Angebot' THEN 1 END) AS Offers' Version in einem reservierten Wort Auch wenn Sie Klammern verwenden möchten, wie [Version] – JamieD77
Die Verwendung von SUMME führt zum gleichen Ergebnis, leider –
Ich habe die Ursache des Problems gefunden. Wenn eine Kategorie mehrere Instanzen einer Version zurückgibt, wird sie aus den von der Abfrage generierten Ergebnissen entfernt. Es funktioniert gut, wenn jede Kategorie nur eine Version hat, aber nicht, wenn es mehr als eine gibt. –