首页 > 解决方案 > 多部分标识符无法绑定 SQL Server

问题描述

选择查询给出错误:

无法绑定多部分标识符“dbo.HD_Caller_Info.ci_name”

无法绑定多部分标识符“dbo.HD_Caller_Info.ci_caller_no”

这是给出上述错误的查询部分

ISNULL(dbo.HD_Caller_Info.ci_name, '-') AS callerName, ISNULL(dbo.HD_Caller_Info.ci_caller_no, '-') AS callerPhone,

我的完整查询

SELECT      dbo.HD_Case_Master.cm_log_no AS logNo, ISNULL(dbo.HD_Case_Master.cm_customer_rptno, '-') AS custReportNo, ISNULL(dbo.HD_Case_Master.cm_customer_id, '-') AS customerID, 
                             ISNULL(dbo.HD_Customer_Master.cu_customer_Shortname, '-') AS shortName, ISNULL(dbo.HD_Customer_Master.cu_customer_Name, '-') AS longName, ISNULL(dbo.HD_Case_Master.cm_branch_code, '-') AS branchCode, 
                             ISNULL(dbo.HD_Customer_Branch.cb_branch_Name, '-') AS branchName, ISNULL(dbo.HD_Caller_Info.ci_name, '-') AS callerName, ISNULL(dbo.HD_Caller_Info.ci_caller_no, '-') AS callerPhone, 
                             ISNULL(CONVERT(varchar, dbo.HD_Case_Master.cm_create_date, 101), '-') AS cmDateCreate, ISNULL(CONVERT(varchar(10), dbo.HD_Case_Master.cm_create_date, 103), '-') AS dateReport, ISNULL(CONVERT(varchar, 
                             dbo.HD_Case_Master.cm_create_date, 108), '-') AS timeReport, ISNULL(CONVERT(varchar(10), dbo.HD_Case_Master.cm_close_datetm, 103), '-') AS dateClose, ISNULL(CONVERT(varchar, 
                             dbo.HD_Case_Master.cm_close_datetm, 108), '-') AS timeClose, ISNULL(dbo.HD_Case_Master.cm_severity, '-') AS severity, ISNULL(SUBSTRING(dbo.HD_Case_Master.cm_category, 1, 2), '-') AS prCode, 
                             ISNULL(SUBSTRING(dbo.HD_Case_Master.cm_category, 0, 6), '-') AS prCodelvl2, ISNULL(dbo.refMainCategory.Ct_Abbreviation, '-') AS prCategory, dbo.refCategory.Ct_Description AS category, 
                             ISNULL(dbo.HD_Case_Master.cm_description, '-') AS cmDescription, ISNULL(CONVERT(varchar(10), dbo.HD_Case_Resolution.cr_reso_datetm, 103), '-') AS dateCreate, ISNULL(CONVERT(varchar, 
                             dbo.HD_Case_Resolution.cr_reso_datetm, 108), '-') AS timeCreate, ISNULL(CONVERT(varchar(10), dbo.HD_Case_Resolution.cr_end_date, 103), '-') AS dateEnd, ISNULL(CONVERT(varchar, dbo.HD_Case_Resolution.cr_end_date, 
                             108), '-') AS timeEnd, ISNULL(dbo.HD_Case_Resolution.cr_create_id, '-') AS createdBy, ISNULL(dbo.HD_Person_Info.pi_name, '-') AS staffIncharge, ISNULL(dbo.HD_Case_Resolution.cr_vendor_id, '-') AS vendor, 
                             ISNULL(dbo.refAction.ac_abbreviation, '-') AS action, ISNULL(dbo.HD_Case_Master.cm_status, '-') AS statusCode, ISNULL(dbo.HD_Case_Resolution.cr_resolution, '-') AS resolutionDesc, ISNULL(CONVERT(varchar(10), 
                             dbo.HD_Case_Master.cm_due_datetm, 103), '-') AS dueDate, ISNULL(CONVERT(varchar, dbo.HD_Case_Master.cm_due_datetm, 108), '-') AS dueTime, ISNULL(CONVERT(varchar, GETDATE(), 101), '-') AS getToday, 
                             ISNULL(CONVERT(varchar, GETDATE() + 2, 101), '-') AS getDateBreach, ISNULL(CONVERT(varchar(10), GETDATE() - 1, 103), '-') AS getDate, ISNULL(CONVERT(varchar(10), DATEADD(WEEK, - 1, GETDATE()), 103), '-') AS getWeek, 
                             ISNULL(CONVERT(varchar(10), DATEADD(MONTH, - 1, GETDATE()), 103), '-') AS getMonth, ISNULL(dbo.refCase_Status.cs_case_sts_desc, '-') AS statusDesc, ISNULL(DATEDIFF(dd, dbo.HD_Case_Master.cm_create_date, 
                             GETDATE()), '-') AS aging, ISNULL(DATEDIFF(hh, dbo.HD_Case_Master.cm_create_date, GETDATE()), '-') AS aging_hour, ISNULL(DATEDIFF(mi, dbo.HD_Case_Master.cm_create_date, GETDATE()), '-') AS aging_minute, 
                             ISNULL(CONVERT(int, dbo.HD_Case_Master.cm_downtime), '-') AS breachPeriod, CONVERT(int, dbo.HD_Case_Master.cm_disclaimer) AS tbpsDisclaimer, dbo.HD_SLA.sl_sla_code, dbo.HD_Case_Master.cm_sla_code, 
                             dbo.HD_SLA.sl_due_date_timeframe AS problemTimeFrame, dbo.HD_Case_Master.cm_rectype AS recType, dbo.HD_Case_Master.cm_create_date AS cmCreateDate, dbo.HD_Case_Master.cm_status AS status, 
                             dbo.HD_Case_Master.cm_due_datetm AS cmDueDate, dbo.HD_Case_Master.cm_close_datetm AS cmCloseDate, dbo.HD_Case_Master.cm_resolve_datetm AS cmResolveDate, 
                             dbo.HD_Case_Resolution.cr_reso_datetm AS resoDateTime, dbo.HD_Case_Resolution.cr_end_date AS crEndDateTime, ISNULL(REPLACE(dbo.HD_Case_Master.cm_category, '-', ''), '-') AS catCode, 
                             dbo.HD_Customer_Branch.cb_state AS cbState, dbo.HD_Case_Master.cm_create_id AS cmCreateId, dbo.HD_Case_Resolution.cr_action AS crAction, dbo.HD_Case_Resolution.cr_create_id AS crCreateId, 
                             ISNULL(dbo.HD_Case_Master.cm_vendor_id, '-') AS cmVendorId, dbo.HD_Case_Master.cm_asset_sn AS cmAssetSn, ISNULL(dbo.HD_Case_Master.cm_mode, '-') AS cmMode, dbo.HD_Case_Master.cm_fwd_to AS cmFwdTo, 
                             ISNULL(dbo.HD_Case_Master.cm_group_id, '-') AS cmGroupId, ISNULL(dbo.HD_Case_Master.cm_jpn_problem_type, '-') AS cmJpnProblemType, DATEDIFF(minute,
                                 (SELECT        MIN(cr_reso_datetm) AS Expr1
                                   FROM            dbo.HD_Case_Resolution
                                   WHERE        (cr_log_no = dbo.HD_Case_Master.cm_log_no) AND (cr_action = '08')),
                                 (SELECT        MIN(cr_reso_datetm) AS Expr1
                                   FROM            dbo.HD_Case_Resolution
                                   WHERE        (cr_log_no = dbo.HD_Case_Master.cm_log_no) AND (cr_action = '101'))) AS workaroundbreach, DATEDIFF(minute,
                                 (SELECT        MIN(cr_reso_datetm) AS Expr1
                                   FROM            dbo.HD_Case_Resolution
                                   WHERE        (cr_log_no = dbo.HD_Case_Master.cm_log_no) AND (cr_action = '08')),
                                 (SELECT        MIN(cr_reso_datetm) AS Expr1
                                   FROM            dbo.HD_Case_Resolution
                                   WHERE        (cr_log_no = dbo.HD_Case_Master.cm_log_no) AND (cr_action = '03'))) AS responsetimebreach, dbo.HD_RelCategory_Group.rcg_check_group AS rcgCheckGroup
    FROM            dbo.HD_Case_Master INNER JOIN
                             dbo.HD_Case_Resolution ON dbo.HD_Case_Master.cm_log_no = dbo.HD_Case_Resolution.cr_log_no LEFT OUTER JOIN
                             dbo.HD_Customer_Master ON dbo.HD_Case_Master.cm_customer_id = dbo.HD_Customer_Master.cu_customer_ID LEFT OUTER JOIN
                             dbo.HD_Customer_Branch ON dbo.HD_Case_Master.cm_branch_code = dbo.HD_Customer_Branch.cb_branchcode AND dbo.HD_Case_Master.cm_customer_id = dbo.HD_Customer_Branch.cb_customer_ID LEFT OUTER JOIN
                             dbo.refState ON dbo.HD_Customer_Branch.cb_state = dbo.refState.st_state_code LEFT OUTER JOIN
                             dbo.refCategory ON dbo.HD_Case_Master.cm_category = dbo.refCategory.Ct_Code LEFT OUTER JOIN
                             dbo.refCase_Status ON dbo.HD_Case_Master.cm_status = dbo.refCase_Status.cs_case_sts_code LEFT OUTER JOIN
                             dbo.refAction ON dbo.HD_Case_Resolution.cr_action = dbo.refAction.ac_code LEFT OUTER JOIN
                             dbo.HD_Person_Info ON dbo.HD_Case_Resolution.cr_fwd_to = dbo.HD_Person_Info.pi_person_id LEFT OUTER JOIN
                             dbo.refMainCategory ON SUBSTRING(dbo.HD_Case_Master.cm_category, 1, 2) = dbo.refMainCategory.Ct_Code LEFT OUTER JOIN
                             dbo.HD_SLA ON dbo.HD_Case_Master.cm_sla_code = dbo.HD_SLA.sl_sla_code LEFT OUTER JOIN
                             dbo.HD_RelCategory_Group ON dbo.HD_Case_Master.cm_log_no = dbo.HD_RelCategory_Group.rcg_log_no

我尝试过的是从后面添加“列名”,例如:

 ISNULL(dbo.HD_Caller_Info.ci_name, '-') AS callerName from
 HD_Caller_Info, ISNULL(dbo.HD_Caller_Info.ci_caller_no, '-') AS
 callerPhone from HD_Caller_Info,

标签: sqlsql-server

解决方案


推荐阅读