我有一个表A如下:
工令  制程   时间  ……
123   S       1
456   P       2
123   P       1.5
123   S       2.0
……
===========================
另外一个表B为:
工令  S时间  P时间  W时间  ……
123
456
===========================   
想请问各位大侠,怎样写一存储过程,更新B表的数据,其中B表的S时间为,A表中想同工令的制程为S的时间之和,P时间为制程为P的时间之和??急啊,大哥大姐们帮忙啊!
==========================
正确执行后结果应该是
工令  S时间  P时间  
123    3.0   1.5
456    0      2.0=======================
邹老师昨天给的答案:
DECLARE @s1 varchar(8000), @s2 varchar(8000)
SELECT 
@s1 = '',
@s2 = ''
SELECT
@s1 = @s1 + ',' + fd + '=B.' + fd,
@s2 = @s2 + ',' + fd + '=SUM(CASE 制程 WHEN ' + value + ' THEN 时间 END)'
FROM(
SELECT 
fd = QUOTENAME(制程 + '时间'),
value = QUOTENAME(制程, '''')
FROM(
SELECT DISTINCT 制程 FROM 表A
)AA
)A
SELECT 
@s1 = STUFF(@s1, 1, 1, '')
EXEC('
UPDATE B SET ' + @s1 + '
FROM 表B B,(
SELECT 工令' + @s2 + '
FROM 表A
GROUP BY 工令
)A
WHERE A.工令 = B.工令
')
============我执行后,提示影响行数为2行,但是B表的值没有更新,怎么回事啊??