Clausula sql where para los casos en que por ejemplo los ids deben cumplir de forma combinada lacondición[关闭]

问题描述 投票:0回答:1
id | expediente_id | area_id
1            5           1
2            5           3
3            6           1
4            7           5
5            7           8

[Hola tengo la una tabla N a N.Queríasaber como puedo obtener los expediente_id que cumplen con todas las area_id en forma combinada。便利店1的单人房,便利店的单人房1,便利店的单人房6。在地区1到3的科罗拉多州单人房5年6月。(1,5,8)是否是权宜之计在escacombinación上没有权宜之计。Necesito Saber como puedo hacer la parte del哪里。格拉西亚斯

mysql sql
1个回答
0
投票

您将必须使用动态SQL

        declare @area_id as varchar(10)

        declare @sql nvarchar(Max)
        set @area_id = '1,3';

 IF EXISTS(SELECT *
          FROM   tbl)
  DROP TABLE tbl

        select 1 as   id,         5 as expediente_id   ,       1 as area_id into tbl
        union select 2    ,        5      ,     3
        union select 3   ,         6     ,      1
        union select 4    ,        7     ,      5
        union select 5    ,        7    ,       8


        set @sql = 'select expediente_id from tbl where area_id in ('+@area_id+') 
                    group by expediente_id
                   having count(*) = (
                                       select count(distinct area_id) 
                                       from tbl where area_id in ('+@area_id+')
                                      )'

        exec sp_executesql @sql
© www.soinside.com 2019 - 2024. All rights reserved.