求sql语句

FCWTR 2018-06-26 09:14:52
有2个表:
1、表AAA
有字段:A代码、A姓名、A电话、A日期、A次数、A等字段
2、表BBB
有字段:B代码、B姓名、B电话、B日期

要求:
1、先清空表AAA
2、将表BBB中,时间大于2018-01-01记录,B代码、B姓名、B电话、B日期字段插入到表AAA中,
3、统计表BBB中时间小于2017-12-31记录,
B姓名或B电话同表AAA的A姓名、A电话有重复的值统计重复条数,
统计结果更新到表AAA.A次数中
...全文
169 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2018-06-26
  • 打赏
  • 举报
回复
引用 2 楼 FCWTR 的回复:
您好!谢谢!显示“WITH”附近有语法错误,请检查一下!

with 前的;别丢掉啊
于佳祺Cyril 2018-06-26
  • 打赏
  • 举报
回复
小问题:如果2018年后B表有重复的人名,也全都导入A吗?
FCWTR 2018-06-26
  • 打赏
  • 举报
回复
您好!谢谢!显示“WITH”附近有语法错误,请检查一下!
shinger126 2018-06-26
  • 打赏
  • 举报
回复
1.truncate table AAA
2.insert into AAA(A代码,A姓名,A电话,A日期)
select B代码,B姓名,B电话,B日期 from BBB where B日期>'2018-01-01'
3.;WITH t AS (SELECT B姓名,B电话,COUNT(*) cts FROM BBB WHERE B日期<2017-12-31 GROUP BY B姓名,B电话)
UPDATE b SET b.A次数=t.cts
FROM AAA b,t
WHERE b.A姓名=t.B姓名
AND b.A电话=t.B电话
RINK_1 2018-06-26
  • 打赏
  • 举报
回复

truncate table AAA

insert into AAA(A代码,A姓名,A电话,A日期,A次数)
select A.B代码,A.B姓名,A.B电话,A.B日期,B.次数
from (select B代码,B姓名,B电话,B日期 from BBB where B日期>'2018-01-01') as A
join (select B姓名,B电话,COUNT(*) as 次数 from BBB where B日期<'2017-12-31' group by B姓名,B电话) as B
on A.B姓名=B.B姓名 and A.B电话=B.B电话
shinger126 2018-06-26
  • 打赏
  • 举报
回复
引用 6 楼 FCWTR 的回复:
with 前的“;”在。

你用的MSSQL2000?2005以后的版本都支持cte表的
FCWTR 2018-06-26
  • 打赏
  • 举报
回复
with 前的“;”在。
FCWTR 2018-06-26
  • 打赏
  • 举报
回复
有2个表:
1、表AAA
有字段:A代码、A姓名、A电话、A日期、A次数、A等字段
2、表BBB
有字段:B代码、B姓名、B电话、B日期
要求:
1、先清空表AAA
2、将表BBB中,时间大于2018-01-01记录,B代码、B姓名、B电话、B日期字段插入到表AAA中,
3、只统计表BBB中时间小于2017-12-31记录,(注:大于2018-01-01的不计数)
B姓名或B电话 同 表AAA的A姓名、A电话有重复的值统计重复条数
统计结果更新到表AAA A次数字段中。

34,593

社区成员

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

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