Я надеюсь, что кто-то может помочь с проблемой, которую я не могу охватить своими ограниченными знаниями.У меня есть два SQL-запроса, например:
SELECT
SUM(Matrix.[ITEM1]) AS [ITEM1],
SUM(Matrix.[ITEM2]) AS [ITEM2]
FROM StoreList
INNER JOIN Matrix ON StoreList.[Store Number] = Matrix.[Store Number]
WHERE (StoreList.Region = '@Value')
SELECT
ITEMTYPES.type_description,
ITEMS.Quantity
FROM ITEMS
INNER JOIN ITEMTYPES ON ITEMS.type_id = ITEMTYPES.id
Теперь, что они делают, это возвращают список значений, которые я хочу умножить вместе (например, чтобы получить окончательное количество для [ITEM1], умножить [ITEM1]] by [Items.Quantity]. Однако таблица ITEMTYPES содержит список описаний ITEM (и идентификатора первичного ключа), который используется для ввода новых элементов. Таблица STORELIST использует дескрипторы в ITEMTYPES в качестве имен столбцов (т. е. ItemTypesВ таблице есть записи с именами [Item1], [Item2], имена столбцов в матрице также [Item1], [Item2]).
Вопрос в том, насколько я ограничен (и я имею в виду ограниченный)<6 месяцев с SQL) нет никакого способа выполнить вычисление, основанное на именах столбцов - мне пришлось бы каким-то образом абстрагировать итоги в другую таблицу с дополнительными полями для Region (это объясняет операторы sum () в запросе 1)и выполнять вычисления таким образом - или у кого-то есть более изящная идея? </p>
Структуры таблиц согласно запросу Лоуренса:
For Table [MATRIX]:
[Store Number] (PK, int, not null)
[ITEM1] (int, default 0)
[ITEM2] (int, default 0)
For Table [ITEMTYPES]:
[id] (PK, int, not null),
[ITEMTYPE] (nvarchar(50), not null)
Теперь пример данных (извините за любые проблемы с форматированием!):
[MATRIX]
Store Number ITEM1 ITEM2
------------------------------
123456 1 15
678920 31 9
[ITEMTYPE]
id ITEMTYPE
------------------------------
1 ITEM1
2 ITEM2
Оцените ответ!