我无法回避以下问题的解决方案我的头: 我有三个表(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