首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Outsystems高级SQL

Outsystems高级SQL
EN

Stack Overflow用户
提问于 2021-05-12 21:44:15
回答 1查看 636关注 0票数 1

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

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

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

  1. SQL查询-目标1:检索每台机器已激活的选项。- DONE

  1. SQL查询-目标2:激活X和Y选项的筛选机。-

我的实体图:

My查询:

代码语言:javascript
复制
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

实际查询的结果:

我需要一些关于这个查询的帮助。我已经尝试在内部查询中筛选,但我总是只得到一个只有一个选项。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-12 21:50:35

您可以搜索表两次(每个选项一次),然后加入两个搜索。例如,您可以:

代码语言:javascript
复制
select distinct machineid
from machineoption x
join machineoption y on y.machineid = x.machineid and y.optionid = 'Y'
where x.optionid = 'X'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67511351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档