我的问题在下面的表格结构中。所有项目按分组storeName
,storeId
然后显示每个商店的每个项目的总数。但是某些商店没有出售的某些商品因此显示为NULL..是否可以
- 显示egg&bacon而不是列
NULL
中的前 8 条记录itemName
和 - 显示可乐而不是列中
NULL
的第二个 8itemName
,依此类推。
我不知道他们有多少项目。所以它是动态的。
我想这样做是因为我已经用 pentaho 报表设计器创建了一个交叉表报表。它工作正常,但它需要数据才能正确显示。所以每个项目必须有 8 条记录,每个商店一个。所以我可以按 store 和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
提前感谢奥兹。