2012-03-20 37 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_DATELAST_UPDATED_TIME'。

我在做什麼錯,我能做些什麼來糾正它。

我使用MS SQL Server Management Studio中快速

正如你所看到的,我甚至不是一個新手,所以感謝您與我的軸承。

任何幫助將高度讚賞。

感謝, RItin

+2

您是否在多個表中使用LAST_UPDATED_DATE這一列?如果是這種情況,請指定要使用的表的名稱,如下所示:table.LAST_UPDATED_DATE PS。我的評論更像是一個答案,而不是評論。 – greenLizard 2012-03-20 09:11:41

+0

@animatora,你爲什麼不把它作爲答案來代替;) – 2012-03-20 09:16:06

+0

@Gaby我的壞,我沒有注意到我在哪裏打字。 – greenLizard 2012-03-20 09:20:06

回答

4

這意味着,LAST_UPDATED_DATE是列名於2個表和SQL引擎不知道採取哪一個。

您可以通過添加表名這樣告訴引擎:

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 
相關問題