求SQL语句哦

yinrongg 2011-10-20 11:53:15
有如下表
编号 车号 货名 净重 计量时间
01 A01 货物A 1000 2011-1-20 11:14:01
02 A03 货物B 4000 2011-2-20 11:14:01
03 A03 货物C 3000 2011-3-20 11:14:01
04 A02 货物D 1000 2011-4-20 11:14:01
.
.
.
【注:每一行数据即为一车货物】

现在要统计成如下格式表
货名 1月份 车数 2月份 车数 3月份 车数 4月份 车数 5月份 车数 6月份 车数 ---至12月
货物A 10000 1 0 0 0 0 0 0 0 0 0 0
货物B 0 0 40000 1
货物C 0 0 0 0 3000 1
货物D 0 0 0 0 0 0 1000 1


目前已经实现了统计每个月重量,但是车数没实现。求解
...全文
113 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2011-10-20
  • 打赏
  • 举报
回复
给1-4月统计的例子,其他月份自行添加喔.

create table tab(编号 varchar(3), 车号 varchar(5), 货名 varchar(6), 净重 int, 计量时间 datetime)

insert into tab
select '01','A01','货物A',1000,'2011-1-20 11:14:01' union all
select '02','A03','货物B',4000,'2011-2-20 11:14:01' union all
select '03','A03','货物C',3000,'2011-3-20 11:14:01' union all
select '04','A02','货物D',1000,'2011-4-20 11:14:01'

select 货名,
sum(case month(计量时间) when 1 then 净重 else 0 end) '1月份',
count(case month(计量时间) when 1 then 车号 else null end) '车数',
sum(case month(计量时间) when 2 then 净重 else 0 end) '2月份',
count(case month(计量时间) when 2 then 车号 else null end) '车数',
sum(case month(计量时间) when 3 then 净重 else 0 end) '3月份',
count(case month(计量时间) when 3 then 车号 else null end) '车数',
sum(case month(计量时间) when 4 then 净重 else 0 end) '4月份',
count(case month(计量时间) when 4 then 车号 else null end) '车数'
from tab
group by 货名

货名 1月份 车数 2月份 车数 3月份 车数 4月份 车数
------ ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
货物A 1000 1 0 0 0 0 0 0
货物B 0 0 4000 1 0 0 0 0
货物C 0 0 0 0 3000 1 0 0
货物D 0 0 0 0 0 0 1000 1
薇薇 2011-10-20
  • 打赏
  • 举报
回复


--> 生成测试数据: @T
DECLARE @T TABLE (日期 VARCHAR(4),工号 VARCHAR(4),加班小时 INT)
INSERT INTO @T
SELECT '周一','A001',6 UNION ALL
SELECT '周二','A001',2 UNION ALL
SELECT '周三','A001',1 UNION ALL
SELECT '周四','A001',5 UNION ALL
SELECT '周五','A001',7

select * from (SELECT 日期,工号,加班小时 FROM @T
UNION ALL
SELECT '总数',工号,SUM(加班小时) FROM @T GROUP BY 工号) as t
pivot(max(加班小时)for 日期 in([周一,[周二],[周三],[周四],[周五],[总数]))AS pvt]
AcHerat 2011-10-20
  • 打赏
  • 举报
回复
很多例子哦!CSDN上搜就有。
SqlServer2008 2011-10-20
  • 打赏
  • 举报
回复
写了一个很蹩脚的:


create table tb
(
编号 int,
车号 nvarchar(50),
货名 nvarchar(50),
净重 int,
计量时间 datetime

)

insert into tb(编号, 车号, 货名, 净重, 计量时间)
select '01','A01', '货物A', 1000, '2011-1-20 11:14:01'
union all
select '01','A01', '货物A', 1000, '2011-1-23 11:14:01'
union all
select '02','A02', '货物B', 4000, '2011-2-20 11:14:01'
union all
select '03','A03', '货物C', 3000, '2011-3-20 11:14:01'
union all
select '04','A04', '货物D', 1000, '2011-4-20 11:14:01'

select 货名,
[1月份]=(case when month(计量时间)=1 then 净重 else 0 end),
[2月份]=(case when month(计量时间)=2 then 净重 else 0 end),
[3月份]=(case when month(计量时间)=3 then 净重 else 0 end),
[4月份]=(case when month(计量时间)=4 then 净重 else 0 end),
[5月份]=(case when month(计量时间)=5 then 净重 else 0 end),
[6月份]=(case when month(计量时间)=6 then 净重 else 0 end),
[7月份]=(case when month(计量时间)=7 then 净重 else 0 end),
[8月份]=(case when month(计量时间)=8 then 净重 else 0 end),
[9月份]=(case when month(计量时间)=9 then 净重 else 0 end),
[10月份]=(case when month(计量时间)=10 then 净重 else 0 end),
[11月份]=(case when month(计量时间)=11 then 净重 else 0 end),
[12月份]=(case when month(计量时间)=12 then 净重 else 0 end)
into #tb
from tb

select 货名,
sum([1月份]) as [1月份],
车数=(select count(1) from #tb where 货名=t.货名 and [1月份]!=0),
sum([2月份]) as [2月份],
车数=(select count(1) from #tb where 货名=t.货名 and [2月份]!=0),
sum([3月份]) as [3月份],
车数=(select count(1) from #tb where 货名=t.货名 and [3月份]!=0),
sum([4月份]) as [4月份],
车数=(select count(1) from #tb where 货名=t.货名 and [4月份]!=0),
sum([5月份]) as [5月份],
车数=(select count(1) from #tb where 货名=t.货名 and [5月份]!=0),
sum([6月份]) as [6月份],
车数=(select count(1) from #tb where 货名=t.货名 and [6月份]!=0),
sum([7月份]) as [7月份],
车数=(select count(1) from #tb where 货名=t.货名 and [7月份]!=0),
sum([8月份]) as [8月份],
车数=(select count(1) from #tb where 货名=t.货名 and [8月份]!=0),
sum([9月份]) as [9月份],
车数=(select count(1) from #tb where 货名=t.货名 and [9月份]!=0),
sum([10月份]) as [10月份],
车数=(select count(1) from #tb where 货名=t.货名 and [10月份]!=0),
sum([11月份]) as [11月份],
车数=(select count(1) from #tb where 货名=t.货名 and [11月份]!=0),
sum([12月份]) as [12月份],
车数=(select count(1) from #tb where 货名=t.货名 and [12月份]!=0)
from #tb t group by 货名

drop table #tb

一缕青烟 2011-10-20
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110427/14/8cf6ef38-c73f-43c3-aadb-a210c483b25e.html?12155
--小F-- 2011-10-20
  • 打赏
  • 举报
回复
只有12个月 可以穷举出来 毕竟动态SQL的效率不高

select
货名,
sum(case datepart(mm,计量时间) when 1 then 净重 else 0 end) '1月份',
sum(case datepart(mm,计量时间) when 1 then 车号 else null end) '车数',
sum(case datepart(mm,计量时间) when 2 then 净重 else 0 end) '2月份',
sum(case datepart(mm,计量时间) when 2 then 车号 else null end) '车数',
sum(case datepart(mm,计量时间) when 3 then 净重 else 0 end) '3月份',
sum(case datepart(mm,计量时间) when 3 then 车号 else null end) '车数',
sum(case datepart(mm,计量时间) when 4 then 净重 else 0 end) '4月份',
sum(case datepart(mm,计量时间) when 4 then 车号 else null end) '车数'
.....
from
tb
group by 货名
代码下载链接: https://pan.quark.cn/s/a22871fb98ec 在当前高度竞争的商业环境中,个体经营者与小型仓储管理者正承受着市场压力和不断攀升的运营开支。为了有效应对这些挑战,他们迫切需要一套能够提升工作效率和经营成效的管理工具。基于此需,一款免费的正版单机版进销存管理软件应时而生,为个体经营者和小型仓储单位提供了一站式的解决方案。 进销存管理软件是企业进行商品流通管理的关键系统,其功能涵盖了商品采购、销售及库存管理这三大核心业务流程。正版免费进销存软件的推出,不仅减轻了企业的财务负担,同时也增强了管理的便捷性和数据记录的精确度。 进货管理构成了整个进销存框架的基础。免费进销存软件配备了详尽的进货管理模块,能够完整记录每次采购的详细信息,包括供应商资料、采购量、单价和总费用等,这对于分析采购成本和控制预算具有重要作用。用户可以利用软件迅速创建采购订单,并对货物的到货状态进行监控。此外,软件还提供采购数据分析工具,协助管理者洞察市场趋势,从而制定更为科学合理的采购计划。 销售管理是进销存软件的重点功能。通过运用此类软件,用户可以精确记录每一笔销售活动,涵盖客户资料、商品规格、销售价格和折扣信息。软件能够自动生成销售凭证,简化交易过程,显著提升工作效率。再者,销售统计分析功能使管理者能够全面了解销售状况,准确识别畅销及滞销产品,进而优化销售策略,增加销售量和盈利。 库存管理对于保障业务连续性和控制成本至关重要。正版免费进销存管理软件能够实时更新库存信息,并对库存水平低于安全线的商品发出警示,有效预防缺货问题。同时,用户可以随时查询库存详情,并执行定期的库存盘点,减少不必要的库存积压,加速资金周转。软件内置的库存调拨和报废处理功能,使库存管...
内容概要:本文系统性地介绍了基于灰狼优化算法(GWO)优化BP神经网络的风电功率预测方法,并提供了完整的Matlab代码实现。该方法通过GWO算法全局寻优能力强的特点,优化BP神经网络的初始权重与阈值,有效缓解了传统BP网络易陷入局部最优、收敛速度慢等问题,从而显著提升风电功率预测的精度与模型稳定性。文中详尽阐述了数据预处理、适应度函数设计、GWO-BP模型构建流程及预测结果评估等关键技术环节,同时列举了多个智能优化算法与机器学习相结合的科研方向,涵盖电力系统优化、新能源预测、路径规划、信号处理等多个前沿领域,展现了广阔的应用前景与研究价值。; 适合人群:具备Matlab编程基础与机器学习基础知识,从事新能源发电预测、智能优化算法研究或电力系统分析的高校研究生、科研人员及工程技术开发者。; 使用场景及目标:①应用于风电场功率预测系统,支持电网调度决策与能源管理优化;②为GWO优化神经网络的建模范式提供可复现的技术参考,适用于其他时序预测任务的研究与拓展;③帮助科研人员深入理解智能算法与神经网络融合的设计思路与实现路径。; 阅读建议:建议读者结合提供的Matlab代码与网盘资料,按照文档结构循序渐进学习,重点关注GWO-BP的优化机制与参数调优策略,动手调试并尝试迁移至光伏预测、负荷预测等相似场景,同时借鉴文中提出的创新方向以启发后续科研工作。

22,297

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧