sql >> Databáze >  >> RDS >> Mysql

SQL:PŘIDAT &MINUS na základě typu pole

K udržení kumulativní částky můžete použít proměnnou:

SELECT ID, 
       @s := IF(ACTION_TYPE='ADD', @s + ACTION_QTY, @s - ACTION_QTY) AS BALANCE,
       ACTION_QTY,
       ACTION_TYPE
FROM tableA
CROSS JOIN (SELECT @s := 0) AS var
ORDER BY ID 

Výše uvedený dotaz předpokládá, že existují pouze dva typy ACTION_TYPE hodnoty, konkrétně 'ADD' a 'DEDUCT' . Pokud tedy ACTION_TYPE se nerovná 'ADD' , pak se rovná 'DEDUCT' .

Ukázka zde




  1. postgreSQL třídění s časovými razítky

  2. Chybějící databázová připojení Eclipse

  3. Dotazy Django ORM selžou při výběru nových objektů

  4. jak zobrazit pouze čas v orákulu?