2016-12-20 5 views
-4

Diese meine Tabelle mit einigen Beispieldaten ist:SQL Server COALESCE und GROUP BY mit NULL-Werten

City  Supplier Month 
------------------------- 
Bangalore 0  NULL 
Chennai  0  NULL 
Chennai  2  11 
Chennai  1  10 

Ich versuche, das Ergebnis als

City  Supplier Month 
--------------------------- 
Bangalore 0  NULL 
Chennai  2  11 
Chennai  1  10 

Ich versuche zu bekommen zu nehmen Jede Stadt nur Zeilen, in denen Monat nicht NULL ist, es sei denn, dies ist die einzige Zeile und dann will ich es.

Ich versuchte eine Vielzahl von GROUP BY und COALESCE Funktionen, aber nichts scheint zu funktionieren. Könnte mir bitte jemand helfen?

Antwort

1

Ich wette auf dieser

select  City,Supplier,Month 

from  (select  City,Supplier,Month 
         ,count(*) over (partition by City) as cnt 

      from  t 
      ) t 

where  Month is not null 
     or cnt = 1