首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server:在需要条件的上下文中指定的非布尔型表达式。

Server:在需要条件的上下文中指定的非布尔型表达式。
EN

Stack Overflow用户
提问于 2014-02-20 22:54:09
回答 1查看 639关注 0票数 1

我很抱歉,我问这个问题时,这个特定的错误类型已经被问了好几次,但我已经仔细看过了,并且没有明确地看到我的答案。

我正在尝试构建一个触发器,该触发器接收插入到表中的记录(FDC_Trip_History),从记录中选择一些信息,连接到其他表以提取其他数据等,并将记录插入到另一个表(暂存)中。

我在脚本的底部得到了这个错误,这是from部分后面的第4行。知道为什么吗?

代码语言:javascript
复制
CREATE TRIGGER Insert_Trip_History ON FDC_Trip_History
AFTER INSERT
AS BEGIN

SET NOCOUNT ON;
    --If inserted record reaches a certain 'status' of archive then continue
    If EXISTS (SELECT * FROM inserted WHERE inserted.description like '%archive%')

    BEGIN
        --If inserted record can be 'billed', and hasn't already been processed, then continue.
        IF EXISTS (    SELECT * FROM inserted 
                    INNER JOIN FDC_Trips on inserted.tdate = FDC_Trips.tdate and inserted.job = FDC_Trips.job and inserted.SourceDB = FDC_trips.sourceDB
                    INNER JOIN AMS.dbo.Billable_Outcome_Filter as eBill on FDC_trips.SourceDB = eBill.SourceDB and FDC_Trips.outcome = eBill.Outcome_Code)
        AND NOT EXISTS (     SELECT * FROM inserted
                            INNER JOIN Staging as Stg on inserted.tdate = Stg.tdate and inserted.job = Stg.job and inserted.sourcedb = Stg.sourceDB)
            BEGIN    
                INSERT INTO Staging
                    (EVENT_OPERATION,
                    EVENT_SOURCE_TABLE,
                    EVENT_PRIORITY,
                    EVENT_TIME_UPDATED,
                    EVENT_STATUS,
                    EVENT_COMMENT,
                    TDATE,
                    JOB,
                    SOURCEDB,
                    CUSTNO,
                    SHIFTNO,
                    TYPE,
                    PROFITCENTER,
                    BILLINGRATEPROFITCENTER)                
                SELECT 
                    'CREATE' as [EVENT_OPERATION],
                    'FDC_Trip_History' as [EVENT_SOURCE_TABLE],
                    '1' as [EVENT_PRIORITY],
                    GETDATE() as [EVENT_TIME_ADDED],
                    null as [EVENT_TIME_UPDATED],
                    '0' as [EVENT_STATUS],
                    ''  as [EVENT_COMMENT],
                    eTHistory.tdate as [TDATE],
                    eTHistory.job as [JOB],
                    eTHistory.sourcedb as [SOURCEDB],
                    eT.custno as [CUSTNO],
                    eT.shiftno as [SHIFTNO],
                    'Completed' as [TYPE],
                    --Decide Profit Center.  Profit center (PC) determined from dispatch zone (Trips.dzone)
                    CASE 
                        WHEN cType.descr LIKE 'ATS%'
                            THEN DispatchZone.ATS_ProfitCenter
                        ELSE DispatchZone.ProfitCenter
                    END,
                    --Decide Billing rate profit center.  Billing rate profit center (BRPC) determined from pickup zone.  Does ATS logic apply to BRPC too?
                    CASE
                        WHEN cType.descr LIKE 'ATS%'
                            THEN PickupZone.ATS_ProfitCenter
                        ELSE PickupZone.ProfitCenter
                    END
                     as [BILLINGRATEPROFITCENTER]
                    FROM inserted
                        INNER JOIN FDC_Trip_History as eTHistory
                        INNER JOIN FDC_Trips as eT on eTHistory.tdate = eT.tdate and eTHistory.job = eT.job and eTHistory.sourcedb = eT.sourcedb
                        LEFT JOIN Trips as T on T.tdate = eTHistory.tdate and T.sourcedb = eTHistory.sourceDB and T.Job = eTHistory.Job
                        LEFT JOIN Call_Types as cType on cType.code = eT.calltype and cType.sourceDB = eT.sourceDB
                        LEFT JOIN Zones as DispatchZone on DispatchZone.code = T.dzone
                        LEFT JOIN Zones as PickupZone on PickupZone.code = eT.puzone /* Error pops up right here */
            END
    END
END
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-20 23:04:11

您似乎已经放弃了指定FDC_Trip_History表的联接条件(第一个INNER JOIN)。

此外,INSERT列表中有14列,而SELECT语句中有15列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21921474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档