这一段不管是否用变量,@ShiftID,查询的结果都是一样的。declare @ShiftID nvarchar
set @ShiftID='8'select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
from shift s,shiftDetail sd  
where  s.id=@ShiftID and sd.shiftID = s.id                                  
group by weekID,s.deptID,BeginTime,EndTime
select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
from shift s,shiftDetail sd  
where  s.id='8' and sd.shiftID = s.id                                  
group by weekID,s.deptID,BeginTime,EndTime但是这一段,把值改了后,用变量就查不出来。 不用,就有结果。 都是一样的编码啊declare @ShiftID nvarchar
set @ShiftID='19'select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
from shift s,shiftDetail sd  
where  s.id=@ShiftID and sd.shiftID = s.id                                  
group by weekID,s.deptID,BeginTime,EndTime
select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
from shift s,shiftDetail sd  
where  s.id='19' and sd.shiftID = s.id                                  
group by weekID,s.deptID,BeginTime,EndTime

解决方案 »

  1.   

    这一段不管是否用变量,@ShiftID,查询的结果都是一样的。 declare @ShiftID nvarchar
    set @ShiftID='8'
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id=@ShiftID and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime但是这一段,把值改了后,用变量就查不出来。 不用,就有结果。 都是一样的编码啊
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id='8' and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime
    declare @ShiftID nvarchar
    set @ShiftID='19'
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id=@ShiftID and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id='19' and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime
      

  2.   

    不好意思,一急,上边2段编辑得不好
    这一段不管是否用变量,@ShiftID='8',查询的结果都是一样的
    declare @ShiftID nvarchar
    set @ShiftID='8'
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id=@ShiftID and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id='8' and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime
    但是这一段,把值改了后@ShiftID='19',用变量就查不出来。 不用,就有结果。 都是一样的编码啊declare @ShiftID nvarchar
    set @ShiftID='19'
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id=@ShiftID and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime
    select sum(menCount) sumCount,weekID,s.deptID ,BeginTime,EndTime
    from shift s,shiftDetail sd  
    where  s.id='19' and sd.shiftID = s.id                                  
    group by weekID,s.deptID,BeginTime,EndTime
      

  3.   

    declare @ShiftID nvarchar 这个要给个长度例如
    declare @ShiftID nvarchar(10)
      

  4.   


    declare @ShiftID nvarchar
    set @ShiftID='19'
    select @ShiftID
    /*
    1
    */
    你运行这个就明白了,你没有给长度,默认为1 。
      

  5.   


    但是这一段没给长度,也可以的declare @ShiftID nvarchar
    set @ShiftID='8'