现在有一张表score,有三个字段A1,B1,C1;
现在不同的人有不同的规则,如张三的A=A1,B=2B1,C=C1;李四的A=2A1,B=B1,C=2C1;王五的A=3A1,B=B1,C=2C1;那么在报表中按照竖排显示姓名,如张三、李四,横排显示A、B、C等字段。
数据:张三:A1=50;B1=30;C1=15;李四:A1=20;B1=10;C1=10;李四:A1=10;B1=20;C1=15;那么这个SQL语句该怎么写?
一条SQL语句可以实现吗?存储过程呢?
请高手指点

解决方案 »

  1.   

    刚才回复被404了。楼主可不可以再加一张表示计算关系的表,类似:姓名 字段A关系 字段B关系 字段C关系
    张三 -- 1 ------ 2 ------ 1
    李四 -- 2 ------ 1 ------ 2
    ...然后可以直接表连接去select.
      

  2.   


    declare @t table (name varchar(4),A1 int,B1 int,C1 int)
    insert into @t
    select '张三',50,30,15 union all
    select '李四',20,10,10 union all
    select '王五',10,20,15select * INTO #t from @t
    UPDATE #t SET B1=2*B1 WHERE NAME='张三'
    UPDATE #t SET A1=2*A1,C1=2*C1 WHERE NAME='李四'
    UPDATE #t SET A1=3*A1,C1=2*C1 WHERE NAME='王五'SELECT * FROM #t
    /*
    name A1          B1          C1
    ---- ----------- ----------- -----------
    张三   50          60          15
    李四   40          10          20
    王五   30          20          30
    */
    DROP TABLE #T
      

  3.   

    尽量不去修改数据库,能用SQL语句实现么?
      

  4.   

    楼主是希望按照一定规则插入数据么?比如 A1=10 B1=15 C1=20小明 插入的是 20 30 60
    小东 插入的是 10 15 20可以考虑使用一张表来存储这个关系
    小明 2 2 3
    小东 1 1 1
      

  5.   

    你可以先用一条SQL语句查询出来
    然后在程序里面循环好了