Я должен написать запрос для вычисления суммы столбца, где код причины как число. Поэтому у меня есть эта таблицаКак группа по запросу по семейному коду
TableX:
------------------------ | ReasoneCode | Duration | |------------------------| | 201 | 27512 | | 202 | 4372 | | 100 | 10322 | | 301.12 | 1 | | 302.06 | 34 | | 305 | 12 | ------------------------
Теперь я хочу результат, как этот:
------------------------ | ReasoneCode | Duration | |------------------------| | 200 | 31884 | | 100 | 10322 | | 300 | 47 | ------------------------
Поэтому я стараюсь, чтобы написать этот запрос, но не нашел правильно
SELECT ReasonCode, SUM(Duration)
FROM TableX
GROUP BY ReasonCode
Вы можете мне помочь?
Я стараюсь использовать это решение. С помощью этого запроса я удаляю все '.' из первой колонки
SELECT CAST(LEFT(replace(ReasonCode, '.', ''), (CHARINDEX('.', replace(ReasonCode, '.', ''), 1) + 4)) AS DECIMAL(14, 0)) as Data, SUM(Duration)
FROM TableX
GROUP BY CAST(LEFT(replace(ReasonCode, '.', ''), (CHARINDEX('.', replace(ReasonCode, '.', ''), 1) + 4)) AS DECIMAL(14, 0))
Сейчас я пытаюсь написать другой запрос для группы по результату из reasoneCode семьи. Результат этого запроса:
------------------------
| ReasoneCode | Duration |
|------------------------|
| 201 | 27512 |
| 202 | 4372 |
| 100 | 10322 |
| 30112 | 1 |
| 30206 | 34 |
| 305 | 12 |
------------------------
я мог бы поставить этот результат во временную таблицу, а затем выбрать из этой временной таблицы
SELECT
CAST(CAST(ReasonCode as decimal(8,2)) as int)/100 * 100 as roundedCode,
SUM(Duration)
FROM @TemporaryTable
GROUP BY CAST(CAST(ReasonCode as decimal(8,2)) as int)/100 * 100
Теперь результат:
------------------------
| ReasoneCode | Duration |
|------------------------|
| 200 | 31884 |
| 100 | 10322 |
| 3000 | 35 |
| 305 | 12 |
------------------------
Существует только одна ошибка, она не группируется на 300 и 3000.
После 30 сообщений, пожалуйста, научитесь правильно отформатировать свои вопросы. –
Что вы подразумеваете под 'like a number'? Какой тип 'ReasoneCode'? –
Столбец ReasoneCode представляет собой столбец NVARCHAR, но содержит значение как 301,302,301.12,301.13 ... – bircastri