J'ai une table dans le server SQL avec les codes de projet et les sous-projets dans les mêmes champs.
La structure est quelque chose comme ça
+----+------+-------------+-------+--------+--------+ | id | date | projectcode | debit | credit | budget | +----+------+-------------+-------+--------+--------+ | 1 | bla | A100 | bla | 2 | bla | A100.01 | | 3 | bla | A112 | | 4 | bla | A112.02
Comment puis-je faire un tel choix
SELECT projectcode , sum(debit) as debit , sum(credit) as credit , sum(budget) as budget FROM table1 GROUP BY -insert-answer-here-
Je veux que la sortie se group by
A100 et A100.01 et A100.x set ainsi que A112 + A112.x
Comment puis-je faire cela?
Je n'ai aucun contrôle sur la structure de la table.
GROUP BY LEFT(projectcode ,CHARINDEX('.',projectcode + '.')-1)
Si le code du projet suit toujours le même model (cnnn / cnnn.nn), vous pouvez simplement get les quatre premiers caractères:
group by subssortingng(projectcode, 1, 4)
Peut-être que cela fonctionnerait:
SELECT Subssortingng(projectcode, 1, 4) as Project , sum(debit) as debit , sum(credit) as credit , sum(budget) as budget FROM table1 GROUP BY Subssortingng(projectcode, 1, 4)