我希望有人可以幫助解決一個問題,我無法將有限的知識包裹起來。我有兩個SQL查詢:ASP.net中的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]最後的量[Items.Quantity]。然而,ITEMTYPES表包含用於輸入新項目的ITEM(和主鍵id)的描述列表。STORELIST表使用ITEMTYPES中的描述符作爲列名稱(即。ItemTypes表具有記錄稱爲[Item1],[Item2]; Matrix中的列名稱也是[Item1],[Item2])
問題是這樣的 - 從我有限的經驗(我的意思是限制 - < 6個月SQL )沒有辦法執行校準基於列名稱的計算 - 我必須以某種方式將總計抽象到另一個表中,併爲Region添加額外的字段(這解釋了查詢1中的sum()語句),並按照這種方式執行計算 - 或者其中一些具有更多優雅的想法?
表的結構按照勞倫斯的要求:
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
欣賞響應!
你可以給兩個表的數據庫結構和示例數據嗎? –
只允許在使用SQL時執行此操作?我的意思是你可以使用輔助服務器語言,如C#或PHP或其他? –
對不起勞倫斯 - 我忘了發佈你的第二個查詢的迴應 - SQL查詢正在asp.net(VB.net)內消耗並饋送到gridview。 – Dweeb