sql >> Databáze >  >> RDS >> Sqlserver

Jak vrátit prázdné skupiny v klauzuli SQL GROUP BY

Ano, zkonstruujte výraz, který vrací ordertotal pouze pro adhoc a 0 pro ostatní, a další, který dělá opak, a sečtěte tyto výrazy. To bude zahrnovat jeden řádek na umístění se dvěma sloupci, jedním pro adhoc a jedním pro Smluvní...

 SELECT Location,  
     Sum(Case When Contract_ID Is Null Then OrderTotal Else 0 End) AdHoc,
     Sum(Case When Contract_ID Is Null Then 0 Else OrderTotal  End) Contracted
 FROM Orders 
 GROUP BY Location

pokud opravdu chcete samostatné řádky pro každý, pak jeden přístup by byl:

 SELECT Location, Min('AdHoc') ContractStatus,
     Sum(Case When Contract_ID Is Null 
              Then OrderTotal Else 0 End) OrderTotal
 FROM Orders 
 GROUP BY Location
 Union
 SELECT Location, Min('Contracted') ContractStatus,
     Sum(Case When Contract_ID Is Null 
              Then 0 Else OrderTotal  End) OrderTotal
 FROM Orders 
 GROUP BY Location
 Order By Location


  1. Zobrazit všechny řádky v tabulce mysql a poté dát možnost smazat konkrétní

  2. Aplikace pro Android pro odesílání obrázku do MySQL

  3. UNION VŠECHNY A NE VNITŘNÍ dohromady

  4. Kolik schémat lze vytvořit v postgresu