解决方案 »

  1.   

    SELECT 地区,产品,型号,规格,数量 FROM(
    SELECT
    地区,产品,型号,规格,数量,COUNT(1)OVER(PARTITION BY 地区)C
    FROM 数据表
    WHERE (产品='m25'AND 型号='xl'AND 规格='灰色')OR(产品='s76'AND 型号='l'AND 规格='蓝色')
    )T WHERE C>=2
      

  2.   


    with TempTB as
    (
        SELECT
            地区,产品,型号,规格,数量,row_number() OVER(PARTITION BY 地区) as id
        FROM 数据表
    )
    select 地区,产品,型号,规格,数量 
    TempDB where id>=2红色部分可以调整大小,比如需要商品数量大于等于2就是id>=2 ,如果大于等于3就是id>=3 ,依次类推
    另外还可以根据具体业务在where后添加适当条件
      

  3.   

    ;with Cte
    as
    (select 产品='m25', 型号='xl', 规格='灰色'
    union all
    select 产品='s76', 型号='l', 规格='蓝色'
    )
    select * from 数据表 as a where not exists(select 1 from Cte as b where not exists(select 1 from 数据表 where [地区]=a.[地区] and 产品=b.产品 and 型号=b.型号 and 规格=b.规格))传参时可用DataTable 类型,或用xml把参数当结果集传
      

  4.   

    drop table #table 
    create table #table 
    (
    地区 varchar(10)
    ,产品 varchar(10)
    ,型号 varchar(10)
    ,规格 varchar(10)
    ,数量 varchar(10)
    )insert into #table values 
    ('北京','m10','s','黑色','10')insert into #table values
    ('北京','m20','s','白色','10')
    insert into #table values
    ('天津','m21','l','蓝色','10')
     
    insert into #table values
    ('沈阳','m25','x1','灰色','10')insert into #table values
    ('沈阳','s76','l','蓝色','20')select * from #table with TempTB as
    (
        SELECT
            地区,产品,型号,规格,数量,row_number() OVER(PARTITION    BY 地区 order by 地区 ) as id
        FROM #table
        where  (产品='m25'AND 型号='x1'AND 规格='灰色')OR(产品='s76'AND 型号='l'AND 规格='蓝色')
    )
    select 地区,产品,型号,规格,数量  from 
    TempTB where id<=2
    这个 应该差不多
      

  5.   

    select * from #table with TempTB aswith 前面加个 ; 分号  就能一起 执行了
      

  6.   

    有点小bug补充下drop table #table 
    create table #table 
    (
    地区 varchar(10)
    ,产品 varchar(10)
    ,型号 varchar(10)
    ,规格 varchar(10)
    ,数量 varchar(10)
    )insert into #table values 
    ('北京','m10','s','黑色','10')insert into #table values
    ('北京','m20','s','白色','10')
    insert into #table values
    ('天津','m21','l','蓝色','10')
     
    insert into #table values
    ('沈阳','m25','x1','灰色','10')insert into #table values
    ('沈阳','s76','l','蓝色','20')insert into #table values
    ('北京','s76','l','蓝色','20')
    insert into #table values
    ('天津','s76','l','蓝色','20')
    select * from #table ;with TempTB as
    (
        SELECT
            地区,产品,型号,规格,数量,row_number() OVER(PARTITION    BY 地区 order by 地区 ) as id
        FROM #table
        where  (产品='m25'AND 型号='x1'AND 规格='灰色')OR(产品='s76'AND 型号='l'AND 规格='蓝色')
    )
    select a.地区,a.产品,a.型号,a.规格,a.数量  
    from #table  as a 
    inner join TempTB as b 
    on a.地区 = b.地区
    where id=2