Я только учусь манипулировать строками в таблицах SQL и сейчас пытаюсь сочетать манипуляции со строками с вычислениями значений столбцов.Моя проблема состоит в том, что я ограничиваю серийный номер, обозначаемый как «xx-ггггггг», его первыми двумя значениями (без дефиса), а затем добавляю значения затрат вместе (которые относятся к этим серийным значениям) после создания этих новых серийных номеров.Однако, когда я добавляю значения стоимости вместе, я получаю неправильный результат из-за того, что последовательные значения не суммируются (дублирующиеся последовательные значения в моей выходной таблице).У меня вопрос: как мне ввести свой код, чтобы у меня не было повторяющихся последовательных значений в моих выходных данных, и все значения (кроме NULL) складывались вместе?
Пример таблицы, с которой я работаю, выглядит примерно так::
____Serial____|____Cost____
1| xx-yyyyyy | $aaa.bb
2| xx-yyyyyy | $aaa.bb
3| ... | ...
Вот мой код, который я сейчас пробовал:
SELECT left(Serial, CHARINDEX('-', Serial)-1) AS NewSerial, sum(cost) AS TotalCost
FROM table
WHERE CHARINDEX('-', serial) > 0
GROUP BY Serial
ORDER BY TotalCost DESC
Результаты суммировали значения затрат, но оставляли дублирующиеся значения NewSerial (которые, я полагаю, из-зак предложению GROUP BY).
Output (From my code):
_|___NewSerial____|____TotalCost____
1| ab | $abc.de
2| cd | $abc.de
3| ab | $abc.de
4| ef | $abc.de
5| cd | $abc.de
Как я могу исправить или решить эту проблему в этой области, чтобы все значения NewSerial складывались, а не оставались отдельными, как в моем выводе?