SELECT *
FROM 商铺表 AS A
WHERE NOT EXISTS(
          SELECT 1
          FROM 收费表
            WHERE A.商铺编号 AND 所属日期='09年4月'
      )

解决方案 »

  1.   

    SELECT *
    FROM 商铺表 AS A
    WHERE NOT EXISTS(
              SELECT 1
              FROM 收费表
                WHERE A.商铺编号=商铺编号 AND 所属日期='09年4月'
          )
      

  2.   

    create proc test
    @year char(4),
    @month char(2)
    as
    begin
    select * from 商铺表
    where 商铺编号 not in 
    (select 商铺编号 from 商铺表 where 所属日期=@year+'年'+@month+'月')
    end
      

  3.   

    楼上的都不对吧
    不是not exist/in 
    是 小于  吧
    如果5月份交了  那么以前的都交了
    具体怎么写忘了
    期待楼下
      

  4.   

    不是用存储过程实现的,不过大体思路是这样的可以吗?declare @tb1 table(商铺编号 varchar(10),商铺面积 varchar(10) , 管理费用 varchar(10))
    insert @tb1 select '1111 ','100','100'
    insert @tb1 select '1112','200','200'
    insert @tb1 select '1113','300','300'
    declare @tb2 table(商铺编号 varchar(10),管理费用 varchar(10) , 年月 datetime)
    insert @tb2 select '1111 ','100','20090301'
    insert @tb2 select '1112','200','20090301'
    insert @tb2 select '1113','300','20090301'
    insert @tb2 select '1111 ','100','20090401'----申明参数-------
    declare @cs datetime
    select @cs='2009-04-01 00:00:00.000'
    select a.*
    from @tb1 a
    inner join 
    (select 商铺编号 
    from (select 商铺编号 
    from (
    select zd=max(年月),商铺编号 
    from @tb2 
    group by 商铺编号)c
    where (month(zd)<month(@cs) and year(zd)=year(@cs)) 
    or year(zd)<year(@cs))d )b
    on b.商铺编号=a.商铺编号
      

  5.   

    回楼上
    不是说5月份交了,以前都交了,而是每个月都要交
    -------------------------------------------------
    根据楼上几位的帮助,我这样写:
    CREATE PROCEDURE Searchtest
    (
    @spbh char(10),       //商铺编号
    @date varchar(10)     //所属日期)
    as
    begin
    select * from zulin AS A
    where  not exists(
    select *
    from shoufei where A.商铺编号=@spbh and 所属日期=@date 

    end
    GO
    ----------------------
    出来的结果 不对啊
      

  6.   

    回yubudian
    尽量是想用存储过程,谢谢你的回答,给我提供了一个思路~
      

  7.   


    CREATE PROCEDURE Searchtest 

    @spbh char(10),      //商铺编号 
    @date varchar(10)    //所属日期 ) 
    as 
    begin 
    select * from zulin AS A 
    where 商铺编号=@spbh
    and not exists( 
    select * 
    from shoufei where A.商铺编号=商铺编号 and 所属日期=@date 
    ) end 
    GO 
      

  8.   

    SQL2000,有两个表: 
    商铺表 
    ( 
      商铺编号      商铺面积    管理费用 
      ) 
    收费表 

      商铺编号    管理费用    所属日期 
    现要求能够显示出09年现要求能够显示出09年4月份没缴管理费用的商铺, 
    如上例,则显示为: 
    商铺编号    管理费用    商铺面积    
    select S.商铺编号,S.管理费用,F.所属日期 from 商铺表 S right join 收费表 F on F.商铺编号=S.商铺编号 and F.所属日期=N'09年4月'
    create proc getInfo
    (
      @Date datetime
    )
    as
    select select S.商铺编号,S.管理费用,F.所属日期 from 商铺表 S right join 收费表 F on F.商铺编号=S.商铺编号 and F.所属日期=@Date
      

  9.   

    谢谢liangck,以及其他几位,谢谢了~