【发布时间】:2021-12-09 14:33:32
【问题描述】:
我有一个场景,我需要根据月末选择数据。
原始数据如下所示:
| ID | Date | Cost | IS_REVERSED | Reverse_ID |
|---|---|---|---|---|
| 1 | 2021-01-01 | $1 | No | NULL |
| 2 | 2021-01-30 | $2 | YES | NULL |
| 3 | 2021-02-01 | $3 | NULL | 2 |
| 4 | 2021-02-03 | $4 | No | NULL |
请注意IS_REVERSED 标志列和Reverse_ID 列。如果事务在第一次尝试中成功,则标志为 NO,但如果事务在第二次尝试中成功,则标志为 NULL
如果我在 1 月 结束运行报告,我想要的输出应该会带来 1 月发生的所有交易(即使它反转为是但尚未发生反转)
ID 1、2
对于下个月末,我需要报告 1 月和 2 月合并的数据。并且期望的输出应该是
ID 1、3 和 4
Id 2 应该不报告,因为它的反向标志是 Yes
任何实现这一目标的指针将不胜感激。
Create table Test_Report
(ID Int
,[Date] date
,Cost varchar(100)
,Is_reversed varchar(100)
,Reversed_ID int)
insert into Test_Report values
(1 ,'2021-01-01', '$1' , 'No', NULL),
(2 ,'2021-01-30', '$2' , 'YES', NULL),
(3 ,'2021-02-01', '$3' , NULL, 2),
(4 ,'2021-02-03', '$4' , 'No', NULL)
我需要一个查询,我可以在其中传递 [日期] 作为过滤记录的条件。 (日期
谢谢
【问题讨论】:
-
@Namish 你的日期列是 varchar 列吗?
-
01 Jan这不是约会。这是去年的吗?今年? 1990 年?
标签: sql sql-server tsql dataset