2012-03-20 43 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 
相关问题