Как select'om получить сумму всех столбцов начинабщихся на X? (ms sql)

У меня есть таблица:
id, name, a1,a2,a3,..., an
где a1-an - формата decimal, возможен null.
n - произвольное число (количество столбцов со временем может меняться)

Хотелось бы одним запросом получить сумму всех столбцов начинающихся на 'a', например:
таблица:
2 молоко 1 3 5
3 мясо 5 6 2
Выбрать id, сумму
2 9
3 13

Спасибо.
  • Вопрос задан
  • 2862 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Нормализуйте базу и избавьтесь от кривого способа хранения. Вынесите количество товаров в магазинах в отдельную таблицу (`id товара`, `id магазина`, `количество`).
Ответ написан
martsen
@martsen
Программист-дроновод
Одним запросом не получиться. Вам необходимо будет генерировать динамический SQL. На первом шаге надо будет получать список колонок, а на втором подставлять их имена в запрос.
Null обходиде при помощи ISNULL функции.
Фильтр делайте при помощи LIKE.
Вот тут в ответах есть что-то похожее: stackoverflow.com/questions/17612471/sql-multiple-...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
IgorO2
@IgorO2
73
Используйте CONCAT()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы