没人会吗?
我做工程急着用呀?
由于我要对表的列进行操作,不方便,所以想将行列互换!否则解决下面的问题也行!我有表如下:
        表名:tabale1
           
名称   内科   外科   儿科 
西药   233    123    100
中药   200     56    78
材料   100     45    78
总计   0       0     0
支出   500     300    200
奖金    0      0     0我想通过一个sql语句,得到:总计的值和奖金的值!
总计=西药+中药+材料
奖金=总计*0.3用update语句能实现吗?这样好象不方便呀

解决方案 »

  1.   

    --计算总计
    UPDATE table1
    SET 内科=h.a,
    外科=h.b,
    儿科=h.c
    FROM (
    SELECT SUM(内科) AS a,
    SUM(外科) AS b,
    SUM(儿科) AS c
    FROM table1
    WHERE 名称 IN ('西药','中药','材料')) h
    WHERE 名称='总计'--根据总计计算奖金
    UPDATE table1
    SET 内科=h.a,
    外科=h.b,
    儿科=h.c
    FROM (
    SELECT 内科 AS a,
    外科 AS b,
    儿科 AS c
    FROM table1
    WHERE 名称='总计') h
    WHERE 名称='奖金'
      

  2.   

    奖金是:--根据总计计算奖金
    UPDATE table1
    SET 内科=h.a*0.3,
    外科=h.b*0.3,
    儿科=h.c*0.3
    FROM (
    SELECT 内科 AS a,
    外科 AS b,
    儿科 AS c
    FROM table1
    WHERE 名称='总计') h
    WHERE 名称='奖金'
      

  3.   

    to bugchen888(臭虫) :谢谢了,我现在在网吧,没法试!如果计算奖金的公式是:奖金=(总计-支出)*0.3
     又怎么写呀,我是菜鸟,求帮助!
      

  4.   

    如果计算奖金的公式是:奖金=(总计-支出)*0.3:--根据总计和支出计算奖金
    UPDATE table1
    SET 内科=(h.a-l.a)*0.3,
    外科=(h.b-l.b)*0.3,
    儿科=(h.c-l.c)*0.3
    FROM (
    SELECT 内科 AS a,
    外科 AS b,
    儿科 AS c
    FROM table1
    WHERE 名称='总计') h,
    (
    SELECT 内科 AS a,
    外科 AS b,
    儿科 AS c
    FROM table1
    WHERE 名称='支出') l
    WHERE 名称='奖金'
      

  5.   

    一条SQL语句不行吧,可以用动态SQL 或是建 成过程、函数啊