【发布时间】:2021-06-27 18:54:55
【问题描述】:
我写了一个代码,它给了我错误的答案它做了什么它比较两个表中的日期并从中检查星期天并返回给我item 列的总和它检查星期天它的工作正常但是当它检查其他表日期并比较时有自己的日期,然后给出总和是错误的,请帮助解决这个问题
您也可以在此处查看dbfiddle。
DECLARE
a number;
B DATE;
CURSOR GZDT IS
SELECT GAZZETED_DATE FROM GAZZETED_DAYS
WHERE GAZZETED_DATE between date '2021-01-01' and date '2021-01-20';
begin
OPEN GZDT;
LOOP
FETCH GZDT INTO B;
EXIT WHEN GZDT%notfound;
END LOOP;
CLOSE GZDT;
SELECT SUM(ITEM) into a from pay_in_out
where TO_CHAR(att_date,'DY', 'NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SUN')
AND ATT_DATE != B
AND att_date between date '2021-01-01' and date '2021-01-20'
AND EMP_CODE = 100;
dbms_output.put_line('the sum of item is :'||a) ;
end;
/
【问题讨论】:
-
当我单独运行查询时,您的代码运行良好。请分享您的预期输出是什么? dbfiddle.uk/…
-
"sum is wrong" 但是,您没有告诉我们正确的值是多少。请edit您的问题,并包含一个minimal reproducible example,其中包含用于构建您的示例的所有代码(这样如果 dbfiddle 死了,您的问题仍然有意义)以及您的预期答案的详细信息以及背后的逻辑为什么应该得到答案。