Для примера таблица
CREATE TABLE [dbo].[Table_1](
[id] [int] IDENTITY(1,1) NOT NULL,
[station] [int] NOT NULL,
[action] [datetime] NOT NULL,
[amount] [real] NOT NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Мечтается получить отчет такого плана
action/station 1 2 3
26.01.13 00:00:00 25,0 (null) (null)
26.01.13 01:00:00 (null) 100500,1 (null)
26.01.13 02:00:00 25,6 (null) 45,6
Как сделать?
select act , sum(am1) [1] ,sum(am2) [2] ,sum(am3) [3] from
(select action act, amount am1, 0, 0 from Table1 where station=1
select action act, 0, amount am2, 0 from Table1 where station=2
select action act, 0,0, amount am3 from Table1 where station=3) tt
group by act
Или PIVOT будет выгоднее?
SQL Server 2008