0

私の質問は、以下のテーブル構造にあります。すべてのアイテムを でグループ化しstoreNamestoreId店舗ごとに各アイテムの合計を表示します。ただ、一部の店舗では販売していない商品もあり、NULL表示になっているものもあります。

  • 列の最初の 8 レコードの代わりにEgg&baconを表示し、NULLitemName
  • 列の 2 番目の 8 の代わりにコークスを表示します。NULLitemName

アイテムがいくつあるかわかりません。だからダイナミックです。

pentaho report designerでクロス集計レポートを作成したので、これをやりたいです。正常に動作しますが、適切に表示するにはデータが必要です。したがって、各アイテムには、店舗ごとに 1 つずつ、合計 8 つのレコードが必要です。だから私はそれを店でグループ化することができitemnameます. そのため、レポートには、それらの店舗で販売されていない商品については - または 0 が表示されます。

私が持っているもの

storeId  storeName itemName  total
1        storeA    egg&bacon 75
2        storeB    NULL      NULL
3        storeC    egg&bacon 30
4        storeD    NULL      NULL
5        storeE    NULL      NULL
6        storeF    egg&bacon 50
7        storeG    NULL      NULL
8        storeH    NULL      NULL
1        storeA    coke      105
2        storeB    coke      90
3        storeC    coke      60
4        storeD    NULL      NULL
5        storeE    coke      20
6        storeF    coke      80
7        storeG    NULL      NULL
8        storeH    NULL      NULL

私が望むもの (下の表が現実的でない場合は、別の列を作成してグループ化できますが、どうすればよいですか?)

    storeId  storeName itemName  total
    1        storeA    egg&bacon 75
    2        storeB    egg&bacon 0
    3        storeC    egg&bacon 30
    4        storeD    egg&bacon 0
    5        storeE    egg&bacon 0
    6        storeF    egg&bacon 50
    7        storeG    egg&bacon 0
    8        storeH    egg&bacon 0
    1        storeA    coke      105
    2        storeB    coke      90
    3        storeC    coke      60
    4        storeD    NULL      0
    5        storeE    coke      20
    6        storeF    coke      80
    7        storeG    NULL      0
    8        storeH    NULL      0

これはサンプル SQL ステートメントです。

SELECT storeId , storeName, itemName, total FROM STORE
 LEFT OUTER JOIN
(
    SELECT storeId, storeName, itemId,  total FROM REVENUE_CENTER as RVC
    LEFT OUTER JOIN MENU_ITEM_TOTAL as MIT ON STORE.storeId = MIT.storeId       
) as subQ ON STORE.storeId = subQ.storeId

LEFT OUTER JOIN MENU_ITEM as MI ON  MI.itemId = subQ.itemId

よろしくお願いします。

4

1 に答える 1