1.你可以直接在程序中拼SQL语句出来就行了,例如VB是这样的:
  sql="select  BOUND,.T_SVC,POR_TERR,POR_REGNCD,FND_REGNCD,TEU,(TEU/" & i_week & ")TEUWK FROM MASTER_AUT"
2.SQL不支持带参数的视图,你可以用存储过程或者自定义函数来实现,比如用自定义函数的方法:
create function f_qry(@week int) returns table
as 
return(
select  BOUND,T_SVC,POR_TERR,POR_REGNCD,FND_REGNCD,TEU,(TEU/@week) TEUWK
FROM MASTER_AUT
)以后就可以用这样的语句调用: select * from f_qry(4)

解决方案 »

  1.   

    我要达到的功能是:
    第一:要先叛断用户输入的年月(比如:200409) 有四个星期,那么把4传入@WEEK中.进行计算.
    第二:要叛断闰年与否.因为闰有53个星期.
      

  2.   

    这样
    (case  when 条件  then 值 end)case  when 闰年  then '53个星期' end
      

  3.   

    判断自己写啦  兄弟   这个可以直接加到表达式上的如select  BOUND,T_SVC,POR_TERR,POR_REGNCD,FND_REGNCD,TEU,(TEU/( case  when 条件  then 值 end ))
      

  4.   

    case when 闰年 and 月=12 then 5 
         else  4 
    end
      

  5.   

    set sql=
    'cast  when  then 
    end'
    exec 'sql'
      

  6.   

    比如用户输入'200407',系统要断定07月有几个星期.07月有五个星期.那么就是(TEU/5)
    闰年是不是多了一个星期.那么把多的星期加在12月中.
      

  7.   

    case when ( (cast(left(@v,4) as int) % 4=0 
                 and cast(left(@v,4) as int) % 100<>0 )
                 or cast(left(@v,4) as int) % 400=0 
               )  and right(@v,2)='12' then  5
         else 4
    end
      

  8.   

    --判断某月有几个星期declare @年月 int
    set @年月=200407select 星期数=datediff(week
    ,cast(@年月 as varchar)+'01'
    ,dateadd(month,1,cast(@年月 as varchar)+'01')-1)+1
      

  9.   

    对于sql—server可于用以下语句得到每个月的周数select datediff(week,你输入的月份的1号,你输入的月份的最后一天) from  随便一个表名
    这样得到的是该月的周数,基本上都是4。
      

  10.   

    给你一个存储过程,这个过程需要你输入一个日期(随便哪一天),然后返回这一天所在月份的星期天的数量以及最后一个星期天的日期。具体程序不太复杂,我就不解释了。oracle9i下面编译通过。
    create or replace procedure p_testliu
    (d_dayin in date,
    d_dayout out date,
    n_day out number)
    as
    n_int number :=0;
    n_month number;
    d_day date;
    begin
    d_day:= last_day(add_months(d_dayin,-1));
    loop
    n_month:=months_between(next_day(d_day,'星期日'),last_day(add_months(d_dayin,-1))-1);
    exit when n_month>1;
    d_day:=next_day(d_day,'星期日');
    n_int:=n_int+1;
    end loop;
    d_dayout:=d_day;
    n_day:=n_int;
    end;
      

  11.   

    csdn就这一点不好,写完了编辑不了上面的代码可以再定义一个变量把last_day(add_months(d_dayin,-1))-1)的值赋给变量,这样就不用在每次循环时多处理一些函数。