--建立测试环境
Create table 表1
(单据ID    Varchar(10),
 单据类型  Varchar(10),
 仓号    Varchar(10),
 时间      DateTime,
 单号      Varchar(10),
 厂家      Varchar(10)
)Create table 表2
(AutoID   Varchar(10),
 单据ID    Varchar(10),
 料号      Varchar(20),
 数量      Int
)
GO
--插入数据
Insert 表1 Values('137053',    '01',        '01',    '03-Jan-05',     '0000000001',      '02LQWX')
Insert 表1 Values('137054',    '01',        '01',    '03-Jan-05',     '0000000002',      '02LQWH')
Insert 表1 Values('137055',    '01',        '01',    '04-Jan-05',     '0000000003',      '01BJSH')
Insert 表1 Values('137056',    '01',        '01',    '04-Jan-05',     '0000000004',      '01BJSS')
Insert 表1 Values('137057',    '01',        '01',    '04-Jan-05',     '0000000005',      '01SHDD')Insert 表2 Values('8353129',   '137053',     '64314-LGZ-020',      1800)
Insert 表2 Values('8353130',   '137053',     '64315-LGZ-020',      1800)
Insert 表2 Values('8353131',   '137054',     '64314-LGZ-021',      1800)
Insert 表2 Values('8353132',   '137054',     '64315-LGZ-020',      1800)
Insert 表2 Values('8353133',   '137054',     '64315-LGZ-070',      1000)
GO
--测试
Alter table 表2 Add ID Int
GO
Update A Set ID=(Select Count(*) from 表2 Where 料号=A.料号 And AutoID<=A.AutoID) from 表2 A 
Select 
料号,
SUM(数量) As 数量,
(Select 厂家 from 表1 Inner Join 表2 On 表1.单据ID=表2.单据ID Where 料号=A.料号 And ID=1) As 厂家1,
(Select 数量 from 表2 Where 料号=A.料号 And ID=1) As 厂家1数量,
(Select 厂家 from 表1 Inner Join 表2 On 表1.单据ID=表2.单据ID Where 料号=A.料号 And ID=2) As 厂家2,
(Select 数量 from 表2 Where 料号=A.料号 And ID=2) As 厂家2数量,
(Select 厂家 from 表1 Inner Join 表2 On 表1.单据ID=表2.单据ID Where 料号=A.料号 And ID=3) As 厂家3,
(Select 数量 from 表2 Where 料号=A.料号 And ID=3) As 厂家3数量
from 表2 A
Group By 料号
Order By 料号
--删除测试环境
Drop table 表1,表2
--结果
/*
料号 数量 厂家1 厂家1数量 厂家2 厂家2数量 厂家3 厂家3数量
64314-LGZ-020 1800 02LQWX 1800 NULL NULL NULL NULL
64314-LGZ-021 1800 02LQWH 1800 NULL NULL NULL NULL
64315-LGZ-020 3600 02LQWX 1800 02LQWH 1800 NULL NULL
64315-LGZ-070 1000 02LQWH 1000 NULL NULL NULL NULL
*/