necesita devolver dos conjuntos de datos con dos cláusulas donde diferentes

Resuelto Brad asked hace 10 años • 0 respuestas

Tengo una tabla que realiza un seguimiento de las transacciones.

La tabla está configurada como:

transactions:

id, account_id, budget_id, points, type

Necesito devolver la suma de puntos de cada ID de presupuesto donde tipo = 'asignación' y la suma de puntos donde tipo = 'problema'

Sé cómo hacer cada uno, pero no ambos en una sola consulta.

conjunto de resultados esperado:

budget_id   allocated   issued
   434       200000      100
   242       100000      5020
   621       45000       3940
Brad avatar Aug 12 '14 06:08 Brad
Aceptado
SELECT budget_id, 
       SUM(IF(type = 'allocation', points, 0)) AS allocated,
       SUM(IF(type = 'issue', points, 0)) AS issued
FROM transactions
GROUP BY budget_id
Barmar avatar Aug 11 '2014 23:08 Barmar
    select budget_ID, 
     sum(case when type = 'allocated' then points else 0 end) as allocated,
     sum(case when type = 'issued' then points else 0 end) as issued
     ..rest of your query...
    group by budget_ID

Los casos se pueden utilizar para sumar sólo cuando se cumple un determinado criterio.

Twelfth avatar Aug 11 '2014 23:08 Twelfth