sql >> Databáze >  >> RDS >> Oracle

Jak vypočítat součet více sloupců v Oracle

THEN klauzule v CASE výraz je nesprávný:

CASE WHEN SUM(L55.TOTAL_QUANTITY - BC.FULLBOX * L55.PACKING_STYLE) = 0  
     THEN L55.SPAREBOX = 0
----------^
     WHEN SUM(L55.TOTAL_QUANTITY - BC.FULLBOX * L55.PACKING_STYLE) != 0 
     THEN L55.SPAREBOX = 1
END AS SPARE_QUANTITY

Oracle nemá v SELECT booleovský datový typ dotazy.

Hádám, že prostě chcete:

(CASE WHEN SUM(L55.TOTAL_QUANTITY - BC.FULLBOX * L55.PACKING_STYLE) = 0  
      THEN 0
      WHEN SUM(L55.TOTAL_QUANTITY - BC.FULLBOX * L55.PACKING_STYLE) <> 0 
      THEN 1
 END) AS SPARE_QUANTITY

Nebo pokud chcete odstranit CASE :

ABS(SIGN(SUM(L55.TOTAL_QUANTITY - BC.FULLBOX * L55.PACKING_STYLE))) AS SPARE_QUANTITY



  1. Zobrazuje se pouze první řádek z dotazu SQL

  2. Potřebuji získat seznam uživatelů, kterým byla dříve zaslána zpráva (MySQL)

  3. databáze návrhů týkající se atributu času

  4. Vývojový WordPress admin odkaz přesměrování na živé stránky