2013-06-23 3 views
3

je le tableau suivantComment construire cette requête (somme, groupe par)

# amount type 
1  10  0 
1  10  0 
1  5  1 
1  5  1 
2  10  0 
2  10  0 
2  5  1 
2  5  1 

où 0 signifie argent et 1 signifie crédit dans la colonne de type

Le problème est de trouver le total des utilisations en espèces et des utilisations de crédit et montant total pour chaque ID.

Je suis à la recherche pour la requête qui obtient le résultat suivant

# cash credit total 
1 20 10 30 
2 20 10 30 

Je voudrais utiliser une requête s'il est possible

grâce

Répondre

4
SELECT id, 
SUM(CASE WHEN type = 0 THEN amount ELSE 0 END) as "cash", 
SUM(CASE WHEN type = 1 THEN amount ELSE 0 END) as "credit", 
SUM(amount) as "total" 
FROM your_table 
GROUP BY id 
+0

Je vraiment apprécié Merci beaucoup ça fonctionne bien –

+0

vous êtes les bienvenus! –

2
SELECT 
    num, 
    SUM(CASE WHEN type=0 THEN amount END) cash, 
    SUM(CASE WHEN type=1 THEN amount END) credit, 
    SUM(amount) total 
FROM 
    yourtable 
GROUP BY num 
0
select id, 
     sum(amount) as "total", 
     CASE WHEN type = 0 THEN amount ELSE 0 END as "cash", 
     CASE WHEN type = 1 THEN amount ELSE 0 END as "credit", 
    from table 
group by id