2013-09-01 56 views
0

只需要任何人都可以提供的快速幫助。我在表Products中有一列Product_name,其中有唯一值。SqlLite:我們可以選擇行作爲列嗎?

我想要做的就是SELECT此表的每一行作爲一列,然後爲這個每一行導致查詢,如果他們的存在,在一個名爲Transactiondetails表具體TRANSACTION_ID其中包含從外鍵記錄表Transactions,拉起量。

transactiondetails旨在使數據庫的結構成爲第三範式。例如,對於特定的交易ID,產品數量及其數量全部在具有該特定交易ID的表transactiondetails的單獨行中。

現在,舉例來說,如果我有一個名爲product Aproduct B兩種產品(這意味着在表products兩行),然後將得到的查詢應該表現出這樣的

 
transaction_id | product A | product B 
      1 |   5 |  10 

我希望我做到了理解足夠。

任何幫助將不勝感激。

+0

SQLite沒有透視功能;這不可能。 –

+0

我相信你可以使用'CASE ... END'構造實現非常有限的(固定數量的已知產品)功能作爲交叉表。 –

回答

0

在SQL中,名稱「rows」和「columns」不涉及可視化表示(認爲「記錄」和「屬性」),所以這是不可能的,至少在SQLite中是不可能的。

如果要在「列」中顯示數據,則必須在表示層而不是數據層中執行此操作。然後你將有垂直的「行」(「記錄」)和水平的「列」(「屬性」)。

+0

「關係模型」專門處理行和列嗎?或者我誤解了你的陳述? –

+0

是的,它的確如此。我的意思是,行沒有被定義爲「變得水平的東西」,而是「具有屬性的實體」,對於列是相同的。 –

+0

然後我更喜歡'records'和'fields'類比,因爲列和行在索引,鍵等方面並不相同。 –

相關問題