我無法迴避以下問題的解決方案我的頭: 我有三個表(MS SQL):透視查詢
機
+-----------+-------------+
| MachineID | MachineName |
+-----------+-------------+
| 1 | Press 1 |
| 2 | Press 2 |
| 3 | Press 3 |
+-----------+-------------+
零件
+-----------+-------------+
| PartID | PartName |
+-----------+-------------+
| 1 | Part 1 |
| 2 | Part 2 |
| 3 | Part 3 |
+-----------+-------------+
MachinePartAssign
+----+-----------+--------+--+
| ID | MachineId | PartID | |
+----+-----------+--------+--+
| 1 | 1 | 1 | |
| 2 | 1 | 2 | |
| 3 | 1 | 3 | |
| 4 | 2 | 2 | |
| 5 | 3 | 2 | |
| 6 | 3 | 3 | |
+----+-----------+--------+--+
而且多數民衆贊成我想我的查詢結果: (如果機器和部分被分配,這是這樣,當存在匹配行MachinePartAssign其真(或),否則其應該是假(或)。我還可以爲每個零件/機器組合插入一行到MachinePartAssign幷包含一個額外的布爾(位)列(如果這使得它更容易)。那麼我仍然需要一個類似的樞軸查詢。 (?))
期望結果(真或假,可以用1和0交換如果,可以更容易)
+-----------+--------+--------+--------+
| | Part 1 | Part 2 | Part 3 |
| Press 1 | true | true | true |
| Press 2 | false | true | false |
| Press 3 | false | true | true |
+-----------+--------+--------+--------+
目前IM與在c#環路這樣做:第一選擇每臺機器,然後選擇所有部件,然後爲該特定機器/部件組合選擇MachinePartAssign。如果我得到> 1行回它的真實。這意味着每一臺機器/部件都有一個查詢。
我敢肯定,那裏有應該是一個更優雅的方式。我知道MSSQL提供PIVOT功能,但我不知道如何在我的情況下使用它。
非常感謝!
請格式化你的代碼。 什麼是您的查詢?它存儲什麼數據庫? – BugFinder
完成 - 對不起。 – RambaZamba
以什麼爲依據是真假錯誤還是爲新聞而來1,2,3,3 @ RambaZamba – Chanukya