2012-03-20 6 views
2

これまで作成されたすべてのアイテムコードを返すためのクエリがあります。特定の日付の後に作成されたレコードを返すように既存のクエリを変更する必要があります

SELECT 
    ITM_CD, ITM_NAME, ITM_GROUP_NAME, 
    ITM_ATTR01_DESC, ITM_ATTR02_DESC, ITM_ATTR03_DESC, 
    ITM_ATTR04_DESC, ITM_ATTR05_DESC, ITM_ATTR06_DESC, 
    ITM_ATTR07_DESC, ITM_ATTR08_DESC, ITM_ATTR09_DESC, 
    ITM_ATTR10_DESC, ITM_ATTR11_DESC, ITM_ATTR12_DESC, 
    ITM_ATTR13_DESC, ITM_ATTR14_DESC, BSP_SELL_PRICE, 
    BCP_COST_PRICE, VEN_VENDOR_NAME 
FROM 
    ITEM_DESCRIPTION, 
    BASIC_SP_MST, 
    BASIC_CP_MST, 
    VENDOR_MST 
WHERE 
    ITM_STATUS='O'AND 
    BSP_ORG_CD='001'AND 
    ITM_CD=BSP_ITEM_CD AND 
    ITM_CD=BCP_VEND_ITEM_CD AND 
    BCP_VEND_CD=VEN_VENDOR_CD AND 
    BCP_ORG_cD='001' 

ただし、特定の日付の後に作成されたアイテムコードを確認したいと思います。そのため3月16日、2012年

私は

SELECT 
    ITM_CD, ITM_NAME, ITM_GROUP_NAME, 
    ITM_ATTR01_DESC, ITM_ATTR02_DESC, ITM_ATTR03_DESC, 
    ITM_ATTR04_DESC, ITM_ATTR05_DESC, ITM_ATTR06_DESC, 
    ITM_ATTR07_DESC, ITM_ATTR08_DESC, ITM_ATTR09_DESC, 
    ITM_ATTR10_DESC, ITM_ATTR11_DESC, ITM_ATTR12_DESC, 
    ITM_ATTR13_DESC, ITM_ATTR14_DESC, BSP_SELL_PRICE, 
    BCP_COST_PRICE, VEN_VENDOR_NAME 
FROM 
    ITEM_DESCRIPTION, 
    BASIC_SP_MST, 
    BASIC_CP_MST, 
    VENDOR_MST 
WHERE 
    ITM_STATUS='O'AND 
    BSP_ORG_CD='001'AND 
    ITM_CD=BSP_ITEM_CD AND 
    ITM_CD=BCP_VEND_ITEM_CD AND 
    BCP_VEND_CD=VEN_VENDOR_CD AND 
    BCP_ORG_cD='001' AND 
    LAST_UPDATED_DATE > '16-MARCH-2012' 

を試してみましたが、エラー

メッセージ209、レベル16、状態1、行3 あいまいな列名 'LAST_UPDATED_DATE' を得ました。

私は間違って何をしていますか、それを修正するために何ができますか?あなたが見ることができるように、私はMS SQL Server Management StudioのExpressの

を使用しています

は、私がいない初心者でも、私と一緒にベアリングのためので、感謝しています。

ご協力いただければ幸いです。 LAST_UPDATED_DATEは、2つのテーブルの列名で、SQLエンジンがかかりするかを把握していないことを意味

おかげで、 RItin

+2

この列は複数の表でLAST_UPDATED_DATEになっていますか?そのような場合は、使用するテーブルの名前を指定してください:table.LAST_UPDATED_DATE PS。私のコメントは、コメントではなく、答えに似ています。 – greenLizard

+0

@animatora、代わりにそれを答えとして追加してください;) –

+0

@Gaby私の悪いことに、私が入力した場所には注意を払わなかった。 – greenLizard

答えて

4

あなたはそのようにテーブル名を追加することにより、エンジンを伝えることができます:

table_name.LAST_UPDATED_DATE 

あなたのクエリ:

SELECT ITM_CD, 
    ITM_NAME, 
    ITM_GROUP_NAME, 
    ITM_ATTR01_DESC, 
    ITM_ATTR02_DESC, 
    ITM_ATTR03_DESC, 
    ITM_ATTR04_DESC, 
    ITM_ATTR05_DESC, 
    ITM_ATTR06_DESC, 
    ITM_ATTR07_DESC, 
    ITM_ATTR08_DESC, 
    ITM_ATTR09_DESC, 
    ITM_ATTR10_DESC, 
    ITM_ATTR11_DESC, 
    ITM_ATTR12_DESC, 
    ITM_ATTR13_DESC, 
    ITM_ATTR14_DESC, 
    BSP_SELL_PRICE, 
    BCP_COST_PRICE, 
    VEN_VENDOR_NAME 
FROM ITEM_DESCRIPTION,BASIC_SP_MST,BASIC_CP_MST,VENDOR_MST 
WHERE ITM_STATUS='O' 
    AND BSP_ORG_CD='001' 
    AND ITM_CD=BSP_ITEM_CD 
    AND ITM_CD=BCP_VEND_ITEM_CD 
    AND BCP_VEND_CD=VEN_VENDOR_CD 
    AND BCP_ORG_cD='001' 
    AND tablename.LAST_UPDATED_DATE > '16-MARCH-2012' <-- here is a table name needed for LAST_UPDATED_DATE 

更新: を私は、文字列16-MARCH-2012を使用して動作しないだろうと思いところで。日付比較の代わりに16-03-2012を試してください。

0

メッセージは、データを選択する複数のテーブルに列LAST_UPDATED_DATEが含まれていることを意味します。列名の前に接頭辞を追加する

0

同じ名前の列が複数の表に存在する場合に発生します。シナリオの通り、 'LAST_UPDATED_DATE'は複数の表に存在するようです.....したがって、列名とともに表名を指定してください。

table_name.LAST_UPDATED_DATE 
関連する問題