sql >> Database >  >> RDS >> Oracle

Hoe de som van meerdere kolommen in Oracle te berekenen

De THEN clausules in de CASE uitdrukking is onjuist:

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 heeft geen Booleaans gegevenstype in SELECT vragen.

Ik vermoed dat je gewoon wilt:

(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

Of, als u de CASE . wilt verwijderen :

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



  1. MySql:Tinyint (2) vs tinyint(1) - wat is het verschil?

  2. Bereken leeftijd op basis van geboortedatum

  3. C# verbinding maken met een postgres-database

  4. Datumverschil tussen twee records in dezelfde tabel