Как мне сделать "group by" частичное совпадение
у меня есть таблица в SQL-server с projectcodes и подпроектными кодами в тех же полях.
структуре что-то вроде этого
+----+------+-------------+-------+--------+--------+
| id | date | projectcode | debit | credit | budget |
+----+------+-------------+-------+--------+--------+
| 1 | bla | A100 | bla
| 2 | bla | A100.01 |
| 3 | bla | A112 |
| 4 | bla | A112.02
как мне сделать выбор, как это
SELECT projectcode
, sum(debit) as debit
, sum(credit) as credit
, sum(budget) as budget
FROM table1
GROUP BY -insert-answer-here-
Я хочу, чтобы выход group by
A100 и A100.01 и A100.x вместе, а также A112 + A112.x
как мне это сделать?
я не контролирую структуру таблицы.
3 ответов
если код проекта всегда следует одному и тому же шаблону (cnnn / cnnn.nn) вы можете просто получить первые четыре символа:
group by substring(projectcode, 1, 4)
возможно, это сработает:
SELECT Substring(projectcode, 1, 4) as Project
, sum(debit) as debit
, sum(credit) as credit
, sum(budget) as budget
FROM table1
GROUP BY Substring(projectcode, 1, 4)