J'ai essayé de mettre en place une requête SQL qui trie les données en années financières (que j'ai triées) puis SUMs selon chaque valeur distincte dans la colonne claim_idSOMME SQL de lignes distinctes .... Je suis coincé!
structure de table est: claim (id, claim_id, date, montant)
SQL jusqu'à présent est:
SELECT
CASE
WHEN MONTH(date)>=4 THEN
concat(YEAR(date), '-',YEAR(date)+1)
ELSE
concat(YEAR(date)-1,'-', YEAR(date))
END AS fyear,
SUM(amount) AS total, claim_id
FROM claim
GROUP BY fyear, claim_id
ORDER BY claim_id ASC, date ASC
au moment où je reçois ce
Array
(
[fyear] => 2009-2010
[total] => 567.89
[claim_id] => 1
)
Ce qui est vraiment proche, sauf bien sûr en raison de la GROUP BY claim_id Je reçois un autre tableau pour chaque claim_id distincts:
Array
(
[fyear] => 2009-2010
[total] => 106.76
[claim_id] => 2
)
Ce que j'aimerais vraiment est:
Array
(
[fyear] => 2009-2010
[total1] => 567.89
[total2] => 106.76
)
Toutes les suggestions S'il vous plaît?
Merci!
Essayez de nettoyer votre mise en forme des instructions SQL. 4 espaces indent code. –
Pourquoi en avez-vous vraiment besoin sur les colonnes? Quel est le problème d'avoir les données dans les lignes? –
Étant donné que j'essaie de remplir dynamiquement une table, chaque ligne de la table contient la date, puis une colonne pour un total pour chaque claim_id distinct. Juste des charges plus faciles à construire la table avec php si les données sortent du SQL dans une rangée. À moins qu'il y ait une meilleure façon de le faire que je manque ... – James