【发布时间】:2021-05-12 21:44:15
【问题描述】:
我将首先介绍我的业务逻辑。
我有一个名为 Machines 的实体。我将为每台机器分配最多 50 个选项。在这个查询中,我使用了 PIVOT,因此每台机器我只能检索 一行,所有 选项(列) 的值为 0 或 1。
注意:我的输出结构已为 50 个选项做好准备。
-
SQL 查询 - 目标 1:检索每台机器有哪些选项 活性。 - 完成
-
SQL 查询 - 目标 2:过滤具有 X 和 Y 选项的机器 活性。 -
我的实体图:
我的查询:
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
实际查询的结果:
我需要一些有关此查询的帮助。我已经尝试在内部查询中进行过滤,但我总是只有一个选项才能得到一个。
提前致谢。
【问题讨论】:
标签: sql outsystems