批次 下单时间 件数 票数 承运商 转承运商
件数 票数
1 2007-12-04 808 559 SZ 808 559
10 2007-12-29 764 303 ZH 764 303
10 2007-12-28 2402 1633 ZW 2402 1633
100 2007-11-25 155 108 YS 155 108
列數對不上吧
件数 票数
1 2007-12-04 808 559 SZ 808 559
10 2007-12-29 764 303 ZH 764 303
10 2007-12-28 2402 1633 ZW 2402 1633
100 2007-11-25 155 108 YS 155 108
列數對不上吧
批次 下单时间 件数 票数 承运商 转承运商件数 转承运商票数
1 2007-12-04 808 559 SZ 808 559
10 2007-12-29 764 303 ZH 764 303
10 2007-12-28 2402 1633 ZW 2402 1633
100 2007-11-25 155 108 YS 155 108
1 2007-12-04 808 559 SZ 808 559
10 2007-12-29 764 303 ZH 764 303
10 2007-12-28 2402 1633 ZW 2402 1633
100 2007-11-25 155 108 YS 155 108想要的就是:把上面的10批的件数和票数变成下面的:批次 下单时间 件数 票数 承运商 转承运商件数 转承运商票数
1 2007-12-04 808 559 SZ 808 559
10 2007-12-29 3166 1936 ZH 764 303
10 2007-12-28 3166 1936 ZW 2402 1633
100 2007-11-25 155 108 YS 155 108
declare @T table([批次] int,[下单时间] Datetime,[件数] int,[票数] int,[承运商] nvarchar(2),[转承运商件数] int,[转承运商票数] int)
Insert @T
select 1,'2007-12-04',808,559,N'SZ',808,559 union all
select 10,'2007-12-29',764,303,N'ZH',764,303 union all
select 10,'2007-12-28',2402,1633,N'ZW',2402,1633 union all
select 100,'2007-11-25',155,108,N'YS',155,108
Select
[批次],sum([件数])[件数],sum([票数])[票数]
from @T
group by [批次]
(4 個資料列受到影響)
批次 件数 票数
----------- ----------- -----------
1 808 559
10 3166 1936
100 155 108(3 個資料列受到影響)
declare @T table([批次] int,[下单时间] Datetime,[件数] int,[票数] int,[承运商] nvarchar(2),[转承运商件数] int,[转承运商票数] int)
Insert @T
select 1,'2007-12-04',808,559,N'SZ',808,559 union all
select 10,'2007-12-29',764,303,N'ZH',764,303 union all
select 10,'2007-12-28',2402,1633,N'ZW',2402,1633 union all
select 100,'2007-11-25',155,108,N'YS',155,108
Select
[批次],
[下单时间],sum([件数])over(partition by [批次])[件数],sum([票数])over(partition by [批次])[票数],
[承运商],[转承运商件数],[转承运商票数]
from @T a(4 個資料列受到影響)
批次 下单时间 件数 票数 承运商 转承运商件数 转承运商票数
----------- ----------------------- ----------- ----------- ---- ----------- -----------
1 2007-12-04 00:00:00.000 808 559 SZ 808 559
10 2007-12-29 00:00:00.000 3166 1936 ZH 764 303
10 2007-12-28 00:00:00.000 3166 1936 ZW 2402 1633
100 2007-11-25 00:00:00.000 155 108 YS 155 108(4 個資料列受到影響)
服务器: 消息 156,级别 15,状态 1,行 10
在关键字 'over' 附近有语法错误。
我用的是MSSQL2000 请问,是不是要2005才能按上面的写,如果是的话在2000上要怎样写才行?
那是05功能,2000用
Select
[批次],
[下单时间],
(select sum([件数]) from @T where [批次]=a.[批次])[件数],
(select sum([票数]) from @T where [批次]=a.[批次])[票数],
[承运商],[转承运商件数],[转承运商票数]
from @T a
Select
a.[批次],
[下单时间],
b.[件数],
b.[票数],
[承运商],[转承运商件数],[转承运商票数]
from
@T a
join
(select [批次],sum([件数])[件数],sum([票数])[票数] from @T group by[批次] ) b on a.[批次]=b.[批次]