code | date | value | fixed | fixedEndDate | description
---------------------------------------------------------------------------------------------
1 | 2017-28-07 | 50.00 | 1 | null | expense fixed
--------------------------------------------------------------------------------------------
2 | 2017-10-08 | 100.00 | 0 | null | expense 2
--------------------------------------------------------------------------------------------
3 | 2017-28-08 | 50.00 | 1 | null | fixed expenditure already included
我正在开发一个个人支出系统,客户希望标记为固定的费用,总是在下个月的调查中显示。他不希望固定费用插入一个明确的术语。例如,输入此费用12个月。
列固定= 定义费用是固定类型 列fixedEndDate = 定义此固定类型支出是否重复。 Null意味着它将在几个月内重复
费用过帐流程运作正常,我的问题是如何每月创建费用研究。
在屏幕上,客户选择月份,系统会搜索该月份的所有费用。我想开发一种方法来查找当月的所有费用以及知情月份中不存在的所有固定费用。
但问题是,例如:7月发布的代码1的固定费用已经存在于8月份,因此搜索应该只返回代码2和3的费用,但我的查询返回所有3条记录
选择我使用
select *
from tdespesa
where datadespesa between '2017-01-08' and '2017-31-08'
union
select *
from tdespesa
where fixed = 1
and fixedEndDate is null
and not exists
(select *
from tdespesa
where datadespesa between '2017-01-08' and '2017-31-08');