2012-02-26 9 views
0

我面臨以下問題,我無法解決。我有一個表稱爲其中包含的產品具有以下屬性列表 「tbl_products」:MySql:4個維度中的一個查詢

  1. 國家(1國)
  2. 類別(3類)
  3. 價格區間(2個價格幅度)
  4. 日期

現在我想下表構建

列(產品售出之日起):日期 行:國家,分類,價格範圍

的列每月標記 行應具有以下層次結構

1.Country1

1.1 CAT1

1.1.1價格1

1.1.2 Price2

1.2 Cat2

1.2.1價格1

1.2.2 Price2

1.3的Cat3

1.3.1價格1

1.3.2 Price2

我將如何構造SQL查詢獲取這些信息?表的單元格由count()[#products sold]組成。

回答

0

你所要求的基本上是一棵樹,而且是一棵異質樹。這不是你可以從SQL查詢中輕鬆獲得的東西。什麼關係代數loows你真正得到的是這樣的:

country cat price 
    US 1 2.39 
    US 1 3.19 
    US 2 7.49 
... 
    UK 99 2.80 

這招是您通過國家第一順序,按類別接下來,由去年的價格。當您讀取數據時,您會跟蹤每列的當前值。一旦cat已更改,是時候打印新的「類別...」標題;一旦country已更改,是時候打印一個新的「國家...」標題。

因此,查詢將會像

select country, cat, price -- and whatever else 
from tbl_products 
where ... -- add any limiting clauses, or omit 
order by country, cat, price; 

希望這有助於。