4

Excel で Microsoft Query を使用して Firebird データベースにアクセスしています。

Excel に 4 桁の数字を含むパラメーター フィールドがあります。DB テーブルの 1 つにTP.PHASE_CODE9 桁のフェーズ コードを含む列 ( ) があり、パラメーターとして指定された 4 桁のコードで始まる 9 桁のコードのいずれかを返す必要があります。

たとえば、パラメータ フィールドに '8000' が含まれている場合、他のテーブル/列のフェーズ コードを検索して返す必要がありますLIKE '8000%'

「?」のようには見えないので、SQLでこれを達成する方法を考えています。パラメータを表すものは、LIKE ステートメントに含めることができます。(4 桁で書くと、クエリは正常に動作しますが、そこでパラメーターを使用することはできません。)

問題のあるステートメントは次のとおりです。 TP.PHASE_CODE like '?%'

ここに私の完全なコードがあります:

SELECT C.COSTS_ID, C.AREA_ID, S.SUB_NUMBER, S.SUB_NAME, TP.PHASE_CODE, TP.PHASE_DESC,       TI.ITEM_NUMBER, TI.ITEM_DESC,TI.ORDER_UNIT,
C.UNIT_COST, TI.TLPE_ITEMS_ID FROM TLPE_ITEMS TI
INNER JOIN TLPE_PHASES TP ON TI.TLPE_PHASES_ID = TP.TLPE_PHASES_ID
LEFT OUTER JOIN COSTS C ON C.TLPE_ITEMS_ID = TI.TLPE_ITEMS_ID
LEFT OUTER JOIN AREA A ON C.AREA_ID = A.AREA_ID
LEFT OUTER JOIN SUPPLIER S ON C.SUB_NUMBER = S.SUB_NUMBER

WHERE (C.AREA_ID = 1 OR C.AREA_ID = ?) and S.SUB_NUMBER = ? and TI.ITEM_NUMBER = ? and **TP.PHASE_CODE like '?%'**

ORDER BY TP.PHASE_CODE

このクエリを実行する別の方法についてのアイデアはありますか?

4

3 に答える 3

0

文字列関数を試す: Left ?

WHERE (C.AREA_ID = 1 OR 左 (C.AREA_ID,4) = "8000")

于 2013-06-04T16:59:32.410 に答える