sql 查询A表,把A表的几个字段拿来做条件查询并返回结果给A表

Sqsdhc 2018-06-11 11:55:51
A表查询的结果是
日期 款号 数量 状态
2017-01-01 001 1
2018-01-01 002 1
2018-01-01 001 1

A表的查询出来后,拿日期和款号来查询前20天是否有数据,如果有就返回给状态
这个要怎么查询呢?
...全文
1596 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
丰云 2018-06-11
  • 打赏
  • 举报
回复
感觉就是个简单的嵌套查询。。。。。
二月十六 2018-06-11
  • 打赏
  • 举报
回复
引用 3 楼 shinger126 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:] 拿日期和款号来查询前20天是否有数据, 这句什么意思?建议楼主给出测试数据和对应的结果。
应该就是显示同款号在20天内有没有销售记录[/quote] 好吧,就先这么理解,4#的语句还得加一个end SELECT *,状态=CASE WHEN EXISTS(SELECT 1 FROM A AS t2 WHERE t2.款号=t1.款号 AND t2.日期 >= DATEADD(DAY,-20,t1.日期) AND t2.日期 <t1.日期) THEN '有' ELSE '无' end FROM A AS t1
shinger126 2018-06-11
  • 打赏
  • 举报
回复
[quote=引用 2 楼 shinger126 的回复:] SELECT *,状态=CASE WHEN EXISTS(SELECT 1 FROM A AS t2 WHERE t2.款号=t1.款号 AND t2.日期 >= DATEADD(DAY,-20,t1.日期) AND t2.日期 <t1.日期) THEN '有' ELSE '无' FROM A AS t1 这里没注意写多了一个条件
shinger126 2018-06-11
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
拿日期和款号来查询前20天是否有数据, 这句什么意思?建议楼主给出测试数据和对应的结果。
应该就是显示同款号在20天内有没有销售记录
shinger126 2018-06-11
  • 打赏
  • 举报
回复
SELECT *,状态=CASE WHEN EXISTS(SELECT 1 FROM A AS t2 WHERE t2.日期=t1.日期 AND t2.款号=t1.款号 AND t2.日期 >= DATEADD(DAY,-20,t1.日期) AND t2.日期 <t1.日期) THEN '有' ELSE '无' FROM A AS t1
二月十六 2018-06-11
  • 打赏
  • 举报
回复
拿日期和款号来查询前20天是否有数据, 这句什么意思?建议楼主给出测试数据和对应的结果。

22,209

社区成员

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

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