Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
tarun2224
Starting Member
1 Post |
Posted - 2011-08-21 : 11:13:30
|
| This is my query below. I get the multi-part identifier cannot be bound error for COMP_INFO.DATAAREAID for all the instance.SELECT CAST(COMP_INFO.GBS_CASEID AS int), COMP_INFO.NAME, dbo.GBS_CASEDATES.APPOINTMENTDATE1, dbo.GBS_CASETYPE.CASETYPEDESC, APPOINT_PARTNER.OFFICERNAME, JOINT_PARTNER.OFFICERNAME, JOB_CONTROLLER.OFFICERNAME, CASE_ADMINSTRS.OFFICERNAME, CASE_MANAGER.OFFICERNAME, case when APPOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then APPOINT_PARTNER.TERMINATEDATE end, case when JOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOINT_PARTNER.TERMINATEDATE end, case when JOB_CONTROLLER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOB_CONTROLLER.TERMINATEDATE end, case when CASE_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_MANAGER.TERMINATEDATE end, case when CASE_ADMINSTRS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_ADMINSTRS.TERMINATEDATE end, GROUP_MANAGER.OFFICERNAME, case when GROUP_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then GROUP_MANAGER.TERMINATEDATE end, CASHIERS.OFFICERNAME, case when CASHIERS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASHIERS.TERMINATEDATE end, COMP_INFO.GBS_JOBCODE, ADMIN_OFFICE.OFFICENAME, dbo.GBS_CASEOFFICERS.OFFICERNAME, case when dbo.GBS_CASEDATES.INSOLVENCYDATE <> '1900-01-01 00:00:00' then dbo.GBS_CASEDATES.INSOLVENCYDATE end, case when dbo.GBS_CASEDATES.APPOINTMENTDATE2 <> '1900-01-01 00:00:00' then dbo.GBS_CASEDATES.APPOINTMENTDATE2 end, case when dbo.GBS_CASEDATES.APPOINTMENTDATE3 <> '1900-01-01 00:00:00' then dbo.GBS_CASEDATES.APPOINTMENTDATE3 endFROM dbo.GBS_CASEOFFICERS LEFT OUTER JOIN dbo.GBS_CASEOFFICERS APPOINT_PARTNER ON COMP_INFO.DATAAREAID = APPOINT_PARTNER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS JOB_CONTROLLER ON JOB_CONTROLLER.DATAAREAID = COMP_INFO.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS CASE_MANAGER ON COMP_INFO.DATAAREAID = CASE_MANAGER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS JOINT_PARTNER ON COMP_INFO.DATAAREAID = JOINT_PARTNER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS CASE_ADMINSTRS ON CASE_ADMINSTRS.DATAAREAID = COMP_INFO.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS GROUP_MANAGER ON COMP_INFO.DATAAREAID = GROUP_MANAGER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS CASHIERS ON COMP_INFO.DATAAREAID = CASHIERS.DATAAREAID , dbo.PWCASPCLIENTTABLE, dbo.GBS_CASEDATES, dbo.COMPANYINFO COMP_INFO, dbo.GBS_CASETYPE, dbo.GBS_PWCADDRESSES ADMIN_OFFICE WHERE (APPOINT_PARTNER.TASKID = 'APP') AND (CASE_MANAGER.TASKID = 'CM') AND (JOB_CONTROLLER.TASKID = 'JC') AND (JOINT_PARTNER.TASKID = 'JT APP') AND (CASE_ADMINSTRS.TASKID = 'ADMIN') AND (GROUP_MANAGER.TASKID = 'GM') AND (CASHIERS.TASKID = 'CFM') AND ( case when APPOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then APPOINT_PARTNER.TERMINATEDATE end Is Null AND case when JOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOINT_PARTNER.TERMINATEDATE end Is Null AND case when JOB_CONTROLLER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOB_CONTROLLER.TERMINATEDATE end Is Null AND case when CASE_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_MANAGER.TERMINATEDATE end Is Null AND case when CASE_ADMINSTRS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_ADMINSTRS.TERMINATEDATE end Is Null AND case when GROUP_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then GROUP_MANAGER.TERMINATEDATE end Is Null AND case when CASHIERS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASHIERS.TERMINATEDATE end Is Null AND case when dbo.GBS_CASEOFFICERS.TERMINATEDATE <> '01/01/1900 00:00:00' then dbo.GBS_CASEOFFICERS.TERMINATEDATE end Is Null AND case dbo.PWCASPCLIENTTABLE.STATUS when 1 then 'Operating' when 2 then 'Suspended' when 3 then 'Suspended' else 'Evaluating' end = 'Operating') AND COMP_INFO.DATAAREAID = dbo.GBS_CASEOFFICERS.DATAAREAID AND COMP_INFO.GBS_PWCADMINOFFICEID = ADMIN_OFFICE.OFFICEID AND COMP_INFO.GBS_JURISDICTIONGROUP = dbo.GBS_CASETYPE.JURISDICTIONGROUP AND COMP_INFO.GBS_CASETYPEID = dbo.GBS_CASETYPE.CASETYPEID AND COMP_INFO.DATAAREAID = dbo.GBS_CASEDATES.DATAAREAID AND COMP_INFO.GBS_CASEID = dbo.PWCASPCLIENTTABLE.IDIts better to be a fool today, than forever. |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-08-21 : 11:41:34
|
its because of forward reference. you've used COMP_INFO in conditions before you join to actual table. change it like below and seeSELECTCAST(COMP_INFO.GBS_CASEID AS int),COMP_INFO.NAME,dbo.GBS_CASEDATES.APPOINTMENTDATE1,dbo.GBS_CASETYPE.CASETYPEDESC,APPOINT_PARTNER.OFFICERNAME,JOINT_PARTNER.OFFICERNAME,JOB_CONTROLLER.OFFICERNAME,CASE_ADMINSTRS.OFFICERNAME,CASE_MANAGER.OFFICERNAME,casewhen APPOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then APPOINT_PARTNER.TERMINATEDATEend,casewhen JOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOINT_PARTNER.TERMINATEDATEend,casewhen JOB_CONTROLLER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOB_CONTROLLER.TERMINATEDATEend,casewhen CASE_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_MANAGER.TERMINATEDATEend,casewhen CASE_ADMINSTRS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_ADMINSTRS.TERMINATEDATEend,GROUP_MANAGER.OFFICERNAME,casewhen GROUP_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then GROUP_MANAGER.TERMINATEDATEend,CASHIERS.OFFICERNAME,casewhen CASHIERS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASHIERS.TERMINATEDATEend,COMP_INFO.GBS_JOBCODE,ADMIN_OFFICE.OFFICENAME,dbo.GBS_CASEOFFICERS.OFFICERNAME,casewhen dbo.GBS_CASEDATES.INSOLVENCYDATE <> '1900-01-01 00:00:00' then dbo.GBS_CASEDATES.INSOLVENCYDATEend,casewhen dbo.GBS_CASEDATES.APPOINTMENTDATE2 <> '1900-01-01 00:00:00' then dbo.GBS_CASEDATES.APPOINTMENTDATE2end,casewhen dbo.GBS_CASEDATES.APPOINTMENTDATE3 <> '1900-01-01 00:00:00' then dbo.GBS_CASEDATES.APPOINTMENTDATE3endFROM dbo.COMPANYINFO COMP_INFOINNER JOIN dbo.GBS_CASEOFFICERS ON COMP_INFO.DATAAREAID = dbo.GBS_CASEOFFICERS.DATAAREAIDLEFT OUTER JOIN dbo.GBS_CASEOFFICERS APPOINT_PARTNER ON COMP_INFO.DATAAREAID = APPOINT_PARTNER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS JOB_CONTROLLER ON JOB_CONTROLLER.DATAAREAID = COMP_INFO.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS CASE_MANAGER ON COMP_INFO.DATAAREAID = CASE_MANAGER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS JOINT_PARTNER ON COMP_INFO.DATAAREAID = JOINT_PARTNER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS CASE_ADMINSTRS ON CASE_ADMINSTRS.DATAAREAID = COMP_INFO.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS GROUP_MANAGER ON COMP_INFO.DATAAREAID = GROUP_MANAGER.DATAAREAID LEFT OUTER JOIN dbo.GBS_CASEOFFICERS CASHIERS ON COMP_INFO.DATAAREAID = CASHIERS.DATAAREAID ,dbo.PWCASPCLIENTTABLE,dbo.GBS_CASEDATES,dbo.COMPANYINFO COMP_INFO,dbo.GBS_CASETYPE,dbo.GBS_PWCADDRESSES ADMIN_OFFICE WHERE (APPOINT_PARTNER.TASKID = 'APP')AND (CASE_MANAGER.TASKID = 'CM')AND (JOB_CONTROLLER.TASKID = 'JC')AND (JOINT_PARTNER.TASKID = 'JT APP')AND (CASE_ADMINSTRS.TASKID = 'ADMIN')AND (GROUP_MANAGER.TASKID = 'GM')AND (CASHIERS.TASKID = 'CFM')AND (casewhen APPOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then APPOINT_PARTNER.TERMINATEDATEend Is NullAND casewhen JOINT_PARTNER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOINT_PARTNER.TERMINATEDATEend Is NullAND casewhen JOB_CONTROLLER.TERMINATEDATE <> '01/01/1900 00:00:00' then JOB_CONTROLLER.TERMINATEDATEend Is NullAND casewhen CASE_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_MANAGER.TERMINATEDATEend Is NullAND casewhen CASE_ADMINSTRS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASE_ADMINSTRS.TERMINATEDATEend Is NullAND casewhen GROUP_MANAGER.TERMINATEDATE <> '01/01/1900 00:00:00' then GROUP_MANAGER.TERMINATEDATEend Is NullAND casewhen CASHIERS.TERMINATEDATE <> '01/01/1900 00:00:00' then CASHIERS.TERMINATEDATEend Is NullAND casewhen dbo.GBS_CASEOFFICERS.TERMINATEDATE <> '01/01/1900 00:00:00' then dbo.GBS_CASEOFFICERS.TERMINATEDATEend Is NullAND case dbo.PWCASPCLIENTTABLE.STATUS when 1 then 'Operating'when 2 then 'Suspended'when 3 then 'Suspended'else 'Evaluating'end = 'Operating')AND COMP_INFO.GBS_JURISDICTIONGROUP = dbo.GBS_CASETYPE.JURISDICTIONGROUPAND COMP_INFO.GBS_CASETYPEID = dbo.GBS_CASETYPE.CASETYPEIDAND COMP_INFO.DATAAREAID = dbo.GBS_CASEDATES.DATAAREAIDAND COMP_INFO.GBS_CASEID = dbo.PWCASPCLIENTTABLE.ID Also dont mix old and new join syntaxes its really making it confusing!!!------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
 |
|
|
|
|
|
|
|