declare @b int
set @b=month(getDate());select distinct(f_gysbm),sum(f_fkje) 三月付款金额 from tb201104_jsfk where f_hkyf like '%&@b&月%' group by f_gysbm
我定义了一个变量@b ,值默认等于当前系统时间的月份, 在我的查询语句中想应用这个@B变量作为条件,可是不会写,请高手帮帮忙, 如何可以把这个变量应用在  where f_hkyf like '%&@b&月%'  红色部分?

解决方案 »

  1.   

    declare @b int
    set @b=month(getDate());select distinct(f_gysbm),sum(f_fkje) 三月付款金额 
     from tb201104_jsfk where f_hkyf like '%'+rtrim(@b)+'月%' group by f_gysbm
      

  2.   


    declare @b int
    set @b=month(getDate());select distinct(f_gysbm),sum(f_fkje) 三月付款金额 from tb201104_jsfk where f_hkyf like '%' + cast(@b as varchar(2) + '月%' group by f_gysbm
      

  3.   


    declare @b int
    set @b=month(getDate());select distinct(f_gysbm),sum(f_fkje) 三月付款金额 from tb201104_jsfk where f_hkyf
    like '%' + cast(@b as varchar(2)) + '月%' group by f_gysbm
      

  4.   


    declare @c = @b + '月'
     
    条件中 where g_hkyf like '%@c%'
      

  5.   

    declare @c = cast(@b as varchar(2))
      

  6.   

    两种写法
    1. 按照你写的修改一下declare @b int
    set @b=month(getDate());select distinct(f_gysbm),sum(f_fkje) 三月付款金额 from tb201104_jsfk where f_hkyf like '%'+Cast(@b As Varchar(2))+'月%' group by f_gysbm2.还有一种,就要看你【f_hkyf】字段是什么类型什么格式了,如果是Datetime类型直接利用Month(f_hkyf) = @b即可,如果类型为Varchar,格式固定的话就用字符串截取,Like会比较慢