2011-08-05 18 views
1

私は限られた知識を取り巻くことができない問題に誰かが助けてくれることを望んでいます。何これらが行うことは、私は[ITEM1]のための最終的な量を得るために、例えば(一緒に乗算する値のリストを返す掛け[ITEM1]であり、今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 

:私のような2つのSQLクエリを持っています[Items.Quantity]。しかし、ITEMTYPESテーブルには、新しいアイテムを入力するために使用されるITEM(および主キーID)の説明のリストが保持されています。

この問題は私の限定された経験から(そして私は限定的な意味合いから - < 6ヶ月SQLを使って) )calを実行する方法はありません列名に基づいて集計 - 私は別のテーブルにいくつかの方法で、地域の追加フィールド(これは、クエリ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 

応答に感謝!

+0

両方のテーブルのデータベース構造とサンプルデータを提供できますか? –

+0

はSQLを使用している間のみこれを行うことができます???つまり、C#やPHPなどのセカンダリサーバー言語を使用できますか? –

+0

申し訳ありませんLaurence - 2番目のクエリへの応答を投稿するのを忘れていました.SQLクエリはasp.net(VB.net)内で消費され、gridviewに供給されています。 – Dweeb

答えて

0

[OK]を、あなたは2つの結果は、[OK]を

//FROM THE MATRIX QUERY 
array(
    [0] => array(
     "Store Number" => 123456, 
     "ITEM1" => 1, 
     "ITEM2" => 15 
    ), 
    [1] => array(
     "Store Number" => 678920, 
     "ITEM1" => 31, 
     "ITEM2" => 9 
    ), 
    ETC... 
) 

//FROM YOUR ITEM QUERY 
array(
    [0] => array(
     "type_description" => "ITEM1", 
     "quantity" => ??? 
    ), 
    [1] => array(
     "type_description" => "ITEM2", 
     "quantity" => ??? 
    ) 
    ETC...... 
) 

の形式で最初の結果を持っているので、今は2のforeachを行うことができます... 2つの異なる順序対のリストや配列にこれらの2つのクエリから返されていますので、あなたは2つの配列

foreach(arrayMatrix as store){ 
    foreach(arrayItems as item){ 
     print "Store: "+ store['Store Number']+" ITEM: " + item['type_description']+" total: "+ (store[item['type_description']] * item['quantity']); 
    } 
} 

を反復ループが、今私はあなたがよくVBにこれを翻訳できるかどうかわからない擬似コードとイムでこれを書いています。それらの2つのforeachまたはwhileループまたは何でもグリッドに結果をデータバインドしたり、別の配列またはリストに入れたりすることができます。

+0

あなたは何を示そうとしているのか理解できない、 –

+0

入力してくれてありがとう、Laurence、私はちょうど今擬似コードを見ています。私がフィット感を見ることができるなら、私は戻ってきます:) – Dweeb