2

このクエリを実行しようとしていますが、何も返されません。ユーザー入力を変数としてクエリに取得します。私が言及しなければならないことが 1 つあります。それは、ユーザーがbatch_numbers textbox empty, the query should return all the batches of theorganization_ID` を離れたときです。クエリは次のとおりです。

SELECT Nvl(a.ORGANIZATION_ID, ' '), 
       Nvl(a.FILE_TYPE, ' '), 
       Nvl(a.BATCH_NUMBER, ' '), 
       Nvl(a.FILE_NAME, ' '), 
       Nvl(TOTAL_ANB_RECORDS, 0) 
FROM   PAYMENT B, 
       PAYROLL A 
WHERE  b.ORGANIZATION_ID = a.ORGANIZATION_ID 
       AND a.ORGANIZATION_ID = '1176' 
       AND PAYMENT_TYPE = '1' 
       AND Nvl(PAYMENT_STATUS, 'a') = '5' 
       AND ( BM_BATCH_INDC = '0' 
              OR BM_BATCH_INDC = '1' 
              OR BM_BATCH_INDC = '3' ) 
       AND b.FILE_TYPE = a.FILE_TYPE 
       AND b.FILE_BATCH_NUMBER = a.BATCH_NUMBER 
       AND ( b.FILE_BATCH_NUMBER = '"+textBox.text.ToString()+"' 
              OR b.FILE_BATCH_NUMBER IS NULL ) 
       AND b.PAYMENT_PATH = '01'; 
4

1 に答える 1

0

それが空白であると仮定すると、データはNULLとして返されます

書くだけ

AND b.FILE_BATCH_NUMBER = NVL(a.BATCH_NUMBER,b.FILE_BATCH_NUMBER)

の場所で

AND b.FILE_BATCH_NUMBER = a.BATCH_NUMBER 
       AND ( b.FILE_BATCH_NUMBER = '"+textBox.text.ToString()+"' 
              OR b.FILE_BATCH_NUMBER IS NULL )

Batch_numberがnullの場合、すべてのfile_batch_numberに対してtrueを返します。

于 2012-10-16T18:54:37.253 に答える