سؤال

من فضلك قل لي ما هو الخطأ في الاستعلام. أنا أستخدم Pro C.

EXEC SQL SELECT 1
        INTO    :db_count
        FROM    sachin t
        WHERE   t.serialno =   :serial_no
        AND     t.amount = (:db_inamount - (SELECT NVL(overrun_amount,0)
                                            FROM  sunny tovrun
                                            WHERE tovrun.serialno = :serial_no
                                            AND   tovrun.timestamp = t.timestamp
                                            AND   rownum < 2)
                            )
        AND     t.request_code = 11
        AND     t.reason_code = 0
        AND     t.reversed    = 0
        AND rownum < 2;

والحصول على أخطاء التجميع

Syntax error at line 4487, column 42, file my_file.pc:
Error at line 4487, column 42 in file my_file.pc            AND             t.amount = (:db_inamount - (SELECT NVL(overrun_amount,0)
هل كانت مفيدة؟

المحلول

يستخدم:

 AND t.amount = (SELECT :db_amount - NVL(overrun_amount, 0) ...

إنه عمود محسوب قياسي ، حيث يتم حساب القيمة قبل المقارنة مع t.amount قيمة للمساواة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top