现在有一张表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语句可以实现吗?存储过程呢?
请高手指点
现在不同的人有不同的规则,如张三的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 ------ 2 ------ 1
李四 -- 2 ------ 1 ------ 2
...然后可以直接表连接去select.
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
小东 插入的是 10 15 20可以考虑使用一张表来存储这个关系
小明 2 2 3
小东 1 1 1
然后在程序里面循环好了