Mysql 怎么通过sql查询某个表中的上月的交易总额

Moren_ 2018-07-25 10:18:18
表如下:
user_id money data
12333 100 2018/7/1
12333 101 2018/7/6
12333 102 2018/7/9
12333 100 2018/7/15
12333 101 2018/7/28
1,假如本月是八月,怎么在不知道上月有多少天的情况下,在本月第一天计算上月的money总额?
2,或者:假如本月是七月,怎么在本月的最后一天计算本月的交易总额?在线等,挺急的!
求大佬教
...全文
459 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-07-25
  • 打赏
  • 举报
回复
指定日期对应月的第一天
select cast(dt as date) - interval extract(day from dt)-1 day from(select now() as dt) a;

每个月第一天算,那应该是设置一个定时的操作
Moren_ 2018-07-25
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
用mssql写的,mysql和这个思路类似,换成mysql的函数
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([user_id] int,[money] int,[data] Date)
Insert #T
select 12333,100,'2018/7/1' union all
select 12333,101,'2018/7/6' union all
select 12333,102,'2018/7/9' union all
select 12333,100,'2018/7/15' union all
select 12333,101,'2018/7/28'
Go
--测试数据结束
SELECT
MONTH(data) AS 月份,
SUM(money) AS summoney
FROM
#T
WHERE
DATEDIFF(MONTH, data, '2018-08-01') = 1
GROUP BY
MONTH(data);







当前月的第一天怎么获取,假如我要在每个月的一号去计算上个月,那每个月的一号这个值怎么取
Moren_ 2018-07-25
  • 打赏
  • 举报
回复
当前月的第一天怎么获取,假如我要在每个月的一号去计算上个月,那每个月的一号这个值怎么取
二月十六 2018-07-25
  • 打赏
  • 举报
回复
用mssql写的,mysql和这个思路类似,换成mysql的函数
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([user_id] int,[money] int,[data] Date)
Insert #T
select 12333,100,'2018/7/1' union all
select 12333,101,'2018/7/6' union all
select 12333,102,'2018/7/9' union all
select 12333,100,'2018/7/15' union all
select 12333,101,'2018/7/28'
Go
--测试数据结束
SELECT
MONTH(data) AS 月份,
SUM(money) AS summoney
FROM
#T
WHERE
DATEDIFF(MONTH, data, '2018-08-01') = 1
GROUP BY
MONTH(data);


22,209

社区成员

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

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