重开一贴,做一下数据汇总的问题,谢谢各位大大!

tatty_bad 2018-05-10 10:08:57
前面我的表达不准确,可能需要再加一些字段进去。
数据库是Access。

TableA

Id Name Tel
1 张三 13800001111
2 李四 13800002222
3 王五 13800003333

TableB

Id Nid Money time
1 1 200 2018-3-17
2 1 300 2018-4-12
3 3 100 2018-3-5
4 3 500 2018-5-7
5 3 200 2018-5-10

需要汇总的数据内容

Id Name Total Tel
1 张三 300 13800001111
2 李四 0 13800002222
3 王五 700 13800003333

我需要把第二季度的汇总数据给提取出来。得到这样一个结果。
...全文
551 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tatty_bad 2018-05-10
  • 打赏
  • 举报
回复
引用 4 楼 wmxcn2000 的回复:

-- 使用子查询
-- 试试这个,Access 的子查询不知道行不行。
select A.ID,
       A.NAME,
       (select SUM(b.Money) from B
         where A.ID = B.NID
           AND B.time between '2018-04-01 00:00:00' and '2018-06-30 23:59:59') Total,
       A.TEL
  from A

Access 测试不通过
中国风 2018-05-10
  • 打赏
  • 举报
回复
ACCESS的ISNULL同SQL SERVER语法是有区别的
e.g.
SELECT
a.Id,a.Name,SUM(IIF(ISNULL(b.[Money]),0,b.[Money])) AS Total,a.Tel
FROM TableA AS a
LEFT JOIN TableB AS b ON b.NID=a.ID
GROUP BY a.Id,a.Name,a.Tel
二月十六 2018-05-10
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#TableA') is null
drop table #TableA
Go
Create table #TableA([Id] int,[Name] nvarchar(22),[Tel] NVARCHAR(20))
Insert #TableA
select 1,N'张三',13800001111 union all
select 2,N'李四',13800002222 union all
select 3,N'王五',13800003333
GO
if not object_id(N'Tempdb..#TableB') is null
drop table #TableB
Go
Create table #TableB([Id] int,[Nid] int,[Money] int,[time] Date)
Insert #TableB
select 1,1,200,'2018-3-17' union all
select 2,1,300,'2018-4-12' union all
select 3,3,100,'2018-3-5' union all
select 4,3,500,'2018-5-7' union all
select 5,3,200,'2018-5-10'
Go
--测试数据结束
SELECT #TableA.Id,
Name,
ISNULL(SUM(Money),0) AS Total,
Tel
FROM #TableA
LEFT JOIN #TableB
ON #TableB.Nid = #TableA.Id
AND MONTH(time) IN (4,5,6)
GROUP BY #TableA.Id,
Name,
Tel
ORDER BY #TableA.Id


卖水果的net 2018-05-10
  • 打赏
  • 举报
回复

-- 使用子查询
-- 试试这个,Access 的子查询不知道行不行。
select A.ID,
       A.NAME,
       (select SUM(b.Money) from B
         where A.ID = B.NID
           AND B.time between '2018-04-01 00:00:00' and '2018-06-30 23:59:59') Total,
       A.TEL
  from A

tatty_bad 2018-05-10
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
第二季度是怎么定义的?张三读取的是2018-4-12的数据,王五汇总的是 2018-5-7 和2018-5-10的数据
对啊,第二季度,不就是4.5,6 这三个月么?所以张三只有4月这个数据,王五就是5月的两个数据
二月十六 2018-05-10
  • 打赏
  • 举报
回复
第二季度是怎么定义的?张三读取的是2018-4-12的数据,王五汇总的是 2018-5-7 和2018-5-10的数据

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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