有这样一个表:sql语句该如何写 ? 高人来解决统计问题

senzz 2003-09-16 06:12:51
有这样一个表:

帐号 类型 编号 数量 保存日期
100 1 1 900 2003-8-16
100 1 2 700 2003-9-14
100 2 1 800 2003-9-16
100 1 2 300 2003-9-11
100 2 1 500 2003-8-12
100 2 2 699 2003-9-15

其中 类型 和 编号 是一对多的关系


我想得到如下结果:

帐号 类型 编号 数量 保存日期
100 1 1 900 2003-8
100 2 1 500 2003-8
100 1 2 1000 2003-9
100 2 1 800 2003-9
100 2 2 699 2003-9


该怎末写啊???



...全文
68 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
stwx 2003-09-17
  • 打赏
  • 举报
回复
create table #a(帐号 int,类型 int, 编号 int, 数量 int, 保存日期 datetime)
insert #a values( 100 , 1 ,1, 900 ,'2003-8-16')
insert #a values( 100 , 1 , 2 , 700 ,'2003-9-14')
insert #a values( 100 , 2 , 1 , 800 ,'2003-9-16')
insert #a values( 100 , 1 , 2 , 300 , '2003-9-11')
insert #a values( 100 , 2 , 1 , 500 , '2003-8-12')
insert #a values( 100 , 2, 2 , 699 , '2003-9-15')

SELECT 帐号, 类型,编号,sum(数量),
CONVERT(varchar(7), 保存日期, 120)+'-1' AS DateSelect
FROM #A
GROUP BY 帐号, 类型,编号, CONVERT(varchar(7), 保存日期, 120) +'-1'


drop table #a
happy_0325 2003-09-16
  • 打赏
  • 举报
回复
select 帐号,类型,编号,数量=sum(数量),保存日期=convert(varchar(7),保存日期,120 ) from #a group by 帐号,类型,编号,convert(varchar(7),保存日期,120 )

100 1 1 900 2003-08
100 1 2 1000 2003-09
100 2 1 500 2003-08
100 2 1 800 2003-09
100 2 2 699 2003-09
pengdali 2003-09-16
  • 打赏
  • 举报
回复
select CONVERT(varchar(10), getDate(),120) --不要时间2002-1-1
select convert(char(8),getdate(),112) ----20020101
select convert(char(8),getdate(),108) ---06:05:05

select year(getdate()) --年
select month(getdate()) --月
select day(getdate()) --日
accounant 2003-09-16
  • 打赏
  • 举报
回复
就是日期提取的所有函数(如:提取年份、提取月份、提取到哪一天)能不能列出来共享一下!
或在哪里可以找到?能不能帮不帮忙?
pengdali 2003-09-16
  • 打赏
  • 举报
回复
create table #a(帐号 int,类型 int, 编号 int, 数量 int, 保存日期 datetime)
insert #a values( 100 , 1 ,1, 900 ,'2003-8-16')
insert #a values( 100 , 1 , 2 , 700 ,'2003-9-14')
insert #a values( 100 , 2 , 1 , 800 ,'2003-9-16')
insert #a values( 100 , 1 , 2 , 300 , '2003-9-11')
insert #a values( 100 , 2 , 1 , 500 , '2003-8-12')
insert #a values( 100 , 2, 2 , 699 , '2003-9-15')


select 帐号,类型,编号,sum(数量) 数量,dateadd(day,-day(保存日期)+1,保存日期) 保存日期 from #a group by 帐号,类型,编号,dateadd(day,-day(保存日期)+1,保存日期) order by 帐号,dateadd(day,-day(保存日期)+1,保存日期),类型,编号

go
drop table #a

------------------------------------------------------------------------

帐号 类型 编号 数量 保存日期
----------- ----------- ----------- ----------- ------------------------------------------------------
100 1 1 900 2003-08-01 00:00:00.000
100 2 1 500 2003-08-01 00:00:00.000
100 1 2 1000 2003-09-01 00:00:00.000
100 2 1 800 2003-09-01 00:00:00.000
100 2 2 699 2003-09-01 00:00:00.000

(所影响的行数为 5 行)
accounant 2003-09-16
  • 打赏
  • 举报
回复
我顺便问一下,日期的提取怎么取!
有没有愿意列出所有的情况出来共享一下!谢谢!
senzz 2003-09-16
  • 打赏
  • 举报
回复
更改为

有这样一个表:

帐号 类型 编号 数量 保存日期
100 1 1 900 2003-8-16
100 1 2 700 2003-9-14
100 2 1 800 2003-9-16
100 1 2 300 2003-9-11
100 2 1 500 2003-8-12
100 2 2 699 2003-9-15

其中 类型 和 编号 是一对多的关系


我想得到如下结果:

帐号 类型 编号 数量 保存日期
100 1 1 900 2003-8-1
100 2 1 500 2003-8-1
100 1 2 1000 2003-9-1
100 2 1 800 2003-9-1
100 2 2 699 2003-9-1
accounant 2003-09-16
  • 打赏
  • 举报
回复
SELECT 帐号,类型,编号,SUM(数量) as 数量,
CONVERT(NVARCHAR(7),保存日期, 120) as 保存日期
FROM 表 GROUP BY 帐号,类型,编号,CONVERT(NVARCHAR(7), 保存日期, 120)
senzz 2003-09-16
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2267/2267225.xml?temp=.5431177
zjcxc 元老 2003-09-16
  • 打赏
  • 举报
回复
select 帐号,类型,编号,数量=sum(数量),保存日期=convert(varchar(7),保存日期,120)
from 表
group by 帐号,类型,编号,convert(varchar(7),保存日期,120)
killxtt 2003-09-16
  • 打赏
  • 举报
回复
我怎么觉得没有说清楚阿,结果项里面不是有一项的数量是1000吗,好像是前一张表里面的两项的和阿,但是其他的都没有相加,能不能用文字表述的清楚电阿
yujohny 2003-09-16
  • 打赏
  • 举报
回复
SELECT 帐号,类型,编号,SUM(数量) 数量,
CONVERT(NVARCHAR(7),保存日期, 120) 保存日期
FROM 表 GROUP BY 帐号,类型,编号,CONVERT(NVARCHAR(7), 保存日期, 120)
zarge 2003-09-16
  • 打赏
  • 举报
回复
SELECT 帐号, 类型, 编号, SUM(数量), CONVERT(varchar(7), 保存日期, 120)
FROM 表
GROUP BY 帐号, 类型, 编号, CONVERT(varchar(7), 保存日期, 120)
ufo80 2003-09-16
  • 打赏
  • 举报
回复
select 账号,类型,编号,数量,str(datepart(year,保存日期))+str(datepart(month,保存日期))
from 表
senzz 2003-09-16
  • 打赏
  • 举报
回复
zosky(欢迎使用银行卡) bdhh(Silent)

我要的是按月份的, 每个月的 “ 类型+编号 ” 不能重复
ahui_net 2003-09-16
  • 打赏
  • 举报
回复
right(left(doctime, 10),4)+'-'+ left(doctime, 2) as doctime
senzz 2003-09-16
  • 打赏
  • 举报
回复
group by 保存日期 ??


有问题
zosky 2003-09-16
  • 打赏
  • 举报
回复
select 帐号, 类型,编号,sum(数量), left(保存日期,6) from table
group by 帐号, 类型,编号,left(保存日期,6)
胖河马 2003-09-16
  • 打赏
  • 举报
回复
select 账号,类型,编号,sum(数量),max(保存日期)
from 表
group by 账号,类型,编号
friendliu 2003-09-16
  • 打赏
  • 举报
回复
select 帐号, 类型,编号,sum(数量), 保存日期 from table
group by 帐号, 类型,编号,保存日期

加载更多回复(1)

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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