none
求一SQL语句? RRS feed

  • 问题

  • 如以上数据集,获取ApplyNo的status字段值都为1的记录,请问这个SQL语句应该怎么写呢?

    注:希望得到如下结果

    ApplyNo

    2011122703

    2011122705

    2011年12月27日 11:44

答案

  • 或是用這種寫法。

    select distinct ApplyNo
    from @t
    where [Status] = 1
    except
    select distinct ApplyNo
    from @t 
    where [Status] = 0
    



    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 1:05

全部回复

  • select distinct ApplyNo
    from TableName
    where Status = '1'
    


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月27日 12:51
  • select distinct ApplyNo
    from TableName
    where Status = '1'
    


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/


    您好!

    感谢您的回答,按照您这样写,不能实现我的要求。

    2011年12月27日 13:26
  • 從你畫面上提供的資訊,我做了下列的模擬,不過似乎Status為1的資料會有三筆(2011122703
    ,2011122705,2011122706)不曉得你是筆誤或是有什麼特殊條件要篩選掉2011122706,謝謝。
    declare @t table
    (id int identity
    ,ApplyNo char(10)
    ,AuditDept nvarchar(5)
    ,AuditDeptNo tinyint
    ,FatherAuditDeptNo tinyint
    ,[Status] bit
    )
    
    insert into @t values ('2011122703','網路部',2,0,1),('2011122704','網路部',2,0,0),('2011122705','網路部',2,0,1),('2011122705','行政部',13,2,1),('2011122706','網路部',2,0,1),('2011122706','網路部',2,0,1),('2011122706','總經辦',1,13,0),('2011122707','網路部',2,0,0)
    
    select distinct ApplyNo
    from @t
    where Status = 1
    
    

    PS:請問你的Status的資料型態為何?上述模擬狀況是假設Status為bit型態,若你的該欄位型態不是bit,T-SQL寫法將會有所不同。

    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月27日 22:45
  • 從你畫面上提供的資訊,我做了下列的模擬,不過似乎Status為1的資料會有三筆(2011122703
    ,2011122705,2011122706)不曉得你是筆誤或是有什麼特殊條件要篩選掉2011122706,謝謝。
    declare @t table
    (id int identity
    ,ApplyNo char(10)
    ,AuditDept nvarchar(5)
    ,AuditDeptNo tinyint
    ,FatherAuditDeptNo tinyint
    ,[Status] bit
    )
    
    insert into @t values ('2011122703','網路部',2,0,1),('2011122704','網路部',2,0,0),('2011122705','網路部',2,0,1),('2011122705','行政部',13,2,1),('2011122706','網路部',2,0,1),('2011122706','網路部',2,0,1),('2011122706','總經辦',1,13,0),('2011122707','網路部',2,0,0)
    
    select distinct ApplyNo
    from @t
    where Status = 1
    
    

    PS:請問你的Status的資料型態為何?上述模擬狀況是假設Status為bit型態,若你的該欄位型態不是bit,T-SQL寫法將會有所不同。

    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    您好!

    感谢您的回复,我需要的结果是ApplyNo所对应的Status字段值都为1的数据,而所给数据集中的“2011122706” 有3条记录,而只有其中一条的Status字段为1,那么“2011122706”显然不满足条件,要过滤掉。

    2011年12月28日 0:40
  • 抱歉,我會錯你的需求,請試試看下列的T-SQL。

    declare @t table
    (id int identity
    ,ApplyNo char(10)
    ,AuditDept nvarchar(5)
    ,AuditDeptNo tinyint
    ,FatherAuditDeptNo tinyint
    ,[Status] bit
    )
    
    insert into @t values ('2011122703','網路部',2,0,1),('2011122704','網路部',2,0,0),('2011122705','網路部',2,0,1),('2011122705','行政部',13,2,1),('2011122706','網路部',2,0,1),('2011122706','行政部',13,2,0),('2011122706','總經辦',1,13,0),('2011122707','網路部',2,0,0)
    
    select * from @t
    
    select distinct ApplyNo
    from @t
    where [Status] = 1
    and ApplyNo not in (select distinct ApplyNo
    								from @t 
    								where [Status] = 0)
    



    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 1:02
  • 或是用這種寫法。

    select distinct ApplyNo
    from @t
    where [Status] = 1
    except
    select distinct ApplyNo
    from @t 
    where [Status] = 0
    



    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 1:05
  • 或是用這種寫法。

     

    select distinct ApplyNo
    from @t
    where [Status] = 1
    except
    select distinct ApplyNo
    from @t 
    where [Status] = 0
    


     


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    满足要求了,谢谢!
    2011年12月28日 1:51