我正在处理程序或查询,它每天检查数据,当数据大于零时,程序将另一个数据插入表中。
示例:十月的每一天我想查看
select
sum(T.Amount)
from Table T
where
T.Month = 10
union all
--check if I already insert this month
select
-sum(T.Amount)
from Result
where
T.Day = 1
T.Month = 10
直到10月15日,我才得到0
。但是在15日,此查询返回1500
。现在我需要将这个数字插入到10月的前一天的另一个表中。所以最后我应该运行:
insert into Result (Amount, Day, Month)
values (1500, n, 10)
其中N将是1到15。
然后所有剩余的日期(从15日到30日)都不会通过我的检查查询,并且不会再次插入此1500
。
我的问题
我的主要问题是,如果首次检查查询返回值大于0
,如何实现此插入过程。我将使用它来创建图形,显示我第15天获得的数字,就像我第一天获得它一样。这意味着,图表将每天显示0
,但是当我在15日获得某个数字时,此图表必须从第1天开始显示此数字。
这就是我需要的:
我的想法是(if
查询)一些程序,如上所述,但我不确定它是否可行,或者我是否必须找到另一种解决方案。
答案 0 :(得分:0)
应该可以使用group by和having子句。
INSERT INTO {tablename} <select_stmt>
<select_stmt> ::= a SELECT whose result set fits the target columns
您必须以仅返回所需值的方式编写您的选择。