2011-08-15 2 views
0

Problème lors de l'interrogation de la base de données.Requête sans utiliser GROUP_CONCAT

Id parent pro_comp_id year   type financial quantity 

1 1   2  2011-08-15  1  10   12 
2 1   2  2011-08-15  2  100   120 
3 1   2  2011-08-15  3  178   190 

tout organisme peut me dire comment interroger cette pour qu'il montre ces trois lignes dans une rangée.

financial quantity financial quantity financial quantity 
    10  12   100  120   178 190  

il peut être fait en utilisant le groupe concat SELECT GROUP_CONCAT (financière), parent du groupe achivements par un parent mais je ne veux pas utiliser GROUP_CONCAT

Répondre

2

Ce que vous voulez est généralement appelé " pivot". Voici la manière standard de le faire:

select 
    year, 
    sum((financial = 10) * quantity) as financial_10_qty, 
    sum((financial = 100) * quantity) as financial_100_qty, 
    sum((financial = 178) * quantity) as financial_178_qty 
from mytable 
group by 1; 

Cela fonctionne parce que financial = ? est 1 pour vrai et 0 pour faux.

Cette réponse suppose que les valeurs de "financial" sont connues et corrigées.