首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

汇总新有关问题

2012-02-07 
汇总新问题现在我需要统计所有的物料中,日期最新的单价字段分别是物料编码\单价\日期要统计所有的物料中,

汇总新问题
现在我需要统计所有的物料中,日期最新的单价
字段分别是物料编码\单价\日期

要统计所有的物料中,日期最新的三个单价

这个已经解决了,能够取出三个单价
但是显示的时候,需要把数据横向显示为一行
物料   单价1   单价2   单价3

[解决办法]

Create Table TEST
(物料编码Varchar(10),
单价Int,
日期DateTime)
Insert TEST Select 'A ', 10, '2007-03-01 '
Union All Select 'A ', 80, '2007-03-02 '
Union All Select 'A ', 12, '2007-03-13 '
Union All Select 'A ', 20, '2007-03-05 '
Union All Select 'A ', 13, '2007-03-11 '
Union All Select 'B ', 10, '2007-03-01 '
Union All Select 'B ', 13, '2007-03-02 '
GO
Select
物料编码,
SUM(Case ID When 1 Then 单价 Else 0 End) As 单价1,
SUM(Case ID When 2 Then 单价 Else 0 End) As 单价2,
SUM(Case ID When 3 Then 单价 Else 0 End) As 单价3
From
(
Select
ID =(Select Count(*) From TEST Where 物料编码 = A.物料编码 And 日期 > = A.日期), *
From
TEST A
) B
Group By 物料编码
GO
Drop Table TEST
--Result
/*
物料编码单价1单价2单价3
A121320
B13100
*/

热点排行