1
考慮一個跟蹤修復的系統。我有一個包含客戶數據和一個公共密鑰的表格。我有第二張表,列中顯示每個ID密鑰上使用哪種類型的修復部件以及使用了多少個修復部件。它們的定義如下:根據來自現有列的數據創建新列
order_information
order_id | cust_last_name
465 Smith
899 Williams
512 Johnson
345 Fenton
122 Bowles
944 Cooper
parts_usage
order_id | part_type | part_quantity
465 Part 1 5
465 Part 2 4
899 Part 1 2
899 Part 2 8
899 Part 3 6
512 Part 3 1
345 Part 2 4
345 Part 3 5
122 Part 2 3
944 Part 1 2
我想運行報告的查詢將返回部分的弄碎了,像這樣:
order_id | Part 1 | Part 2 | Part 3 | Total
465 5 4 9
899 2 8 6 16
512 1 1
345 4 5 9
122 3 3
944 2 2
是否有可能與查詢這樣做,所以我的報告可以顯示每個維修單上使用了每個零件的數量?
正如你所看到的,每個order_id
可以有多個零件類型和獨特的數量。我想將不同的零件類型(我共有3個)分成3個獨立的列,其總數列於order_id
。
你需要的是旋轉你的桌子。例如,SQL Server具有Pivot命令:http://msdn.microsoft.com/en-us/library/ms177410(v=sql.105).aspx –
您使用的是什麼RDBMS。 SQL只是許多數據庫系統使用的語言。您正在尋找的解決方案可能是供應商特定的。 – GarethD
如果你知道你只有三個部分,並且它們是相同的,那麼作爲Part1'應該可以工作的樣式'sum(當part_type ='part 1'時part_quantity結束的情況下)的交叉表格 - 否則可能是更復雜的解決方案供應商特定爲@GarethD狀態。 –