PostgreSQL中的查询结果不一致?
问题描述:
我有一个存储过程只使用SELECT语句(通过使用其他存储过程)求和和检索数据。在这些存储过程中没有更新或插入,当然所有涉及的数据都是静态的。这个主存储过程返回double。奇怪的是,如果我执行它几次,通常3到4次之后,结果与前3 - 4次结果不同,然后继续执行它。PostgreSQL中的查询结果不一致?
我想它的,因为计算机精度问题,但结果仍在100万的差别可高达4〜8
答
问题是最有可能在这里:
IF (FOUND) THEN
vSaldo := vRecSearchSaldoAwal.balance;
RAISE NOTICE 'Balance Adjustment: %', vRecSearchSaldoAwal.balance;
...
SELECT (_dateStart - INTERVAL '1 day'), NULL, NULL, vSaldo, TX_STOCKADJ, 'Saldo Sebelumnya' INTO vRetval;
RETURN NEXT vRetval;
ELSEIF (NOT FOUND) THEN
vSaldo := SumQtyBeginningBal(_idproduct, _idGudang);
...
短语ELSEIF (NOT FOUND) THEN
查看FOUND
值,该值由IF/IFELSE块内的最后一条SELECT
语句设置。您可能需要改为使用简单的ELSE
。
你能分享你的代码吗? – Mureinik
http://pastebin.com/qtDyjufU – Mideel
你好米蒂尔,欢迎来到SO。查看关于使用[最小化,完整且可验证的示例]提问的指导(http://*.com/help/mcve)。否则,几乎不可能给你一个正确的答案。 – Patrick