Как 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
Для правильного вопроса надо знать половину ответа
Нормализуйте базу и избавьтесь от кривого способа хранения. Вынесите количество товаров в магазинах в отдельную таблицу (`id товара`, `id магазина`, `количество`).
Одним запросом не получиться. Вам необходимо будет генерировать динамический SQL. На первом шаге надо будет получать список колонок, а на втором подставлять их имена в запрос.
Null обходиде при помощи ISNULL функции.
Фильтр делайте при помощи LIKE.
Вот тут в ответах есть что-то похожее: stackoverflow.com/questions/17612471/sql-multiple-...