外系统高级 SQL

问题描述

我将首先介绍我的业务逻辑。

我有一个名为机器的实体。我将为每台机器分配最多 50 个选项。在此查询中,我使用了 PIVOT,因此每台机器只能检索一行,所有选项(列) 的值为 0 或 1。

注意:我的输出结构已准备好接受 50 个选项。

  1. SQL 查询 - 目标 1:检索每台机器有哪些选项 活性。 - 完成

  2. SQL 查询 - 目标 2:过滤具有 X 和 Y 选项的机器 活性。 -

我的实体图:

enter image description here

我的查询:

SELECT MachineID,MachineSN,@StringIn


FROM (    
    SELECT {Machine}.[Id] as MachineID,{Options}.[Name] as OptionName,{MachineOption}.[OptionActive] as IsActive,{Machine}.[SNumber] as MachineSN

         
    FROM {MachineOption}
    INNER JOIN {Options} ON {Options}.[Id] = {MachineOption}.[OptionId]
    INNER JOIN {Machine} ON {Machine}.[Id] = {MachineOption}.[MachineId]     
    GROUP BY {Options}.[Name],{MachineOption}.[OptionActive],{Machine}.[SNumber],{Machine}.[Id]
    
        
    
) R
 Pivot (max(IsActive) for OptionName in (@StringIn)) as Columns Order By 1

实际查询的结果:

enter image description here

我需要有关此查询的帮助。我已经尝试在内部查询中进行过滤,但我总是得到一个只有一个选项。

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)