2014-02-24 31 views
0

我想使用SQL查詢在3個表之間進行連接,您能糾正我的語法或給我正確的語法嗎?我的應用程序即使出現此錯誤也不會啓動! 我感謝你在這裏 是我的代碼:帶有customSQL的數據源

<DataSource 
     dbName="SQLServer_CRM" 
     dataSourceVersion="1" 
     generatedBy="v8.3p" 
     serverType="sql" 
> 

      <fields> 
       <field name="OBJ_ID" type="int" title="OBJ ID" customSQL="true"> 
        <nativeName>crm_obj_idnum</nativeName> 
        <tableName>crm_objects</tableName> 
         </field> 

      </fields> 

      <operationBindings operationType="fetch"> 
       <customSQL> 

     SELECT OBJ_DET.[crm_obj_idnum]   AS OBJ_ID 
     ,OBJ_DET.[crm_obj_kind]       AS OBJ_KIND 
     ,OBJ_KN.[crm_kind_name]    AS OBJ_KIND_NAME  
     ,OBJ_FATHER.crm_obj_name   AS FATHER_NAME 
     ,OBJ_DET.[crm_obj_parent_idnum]   AS FATHER_ID 
     ,OBJ_DET.[crm_obj_name]       AS OBJ_NAME 
     ,OBJ_DET.[crm_obj_desc]       AS OBJ_DESC 
     ,OBJ_DET.[crm_obj_isactive]   AS OBJ_ACTIVE 
     fROM 
      [foveaprocess_easycrm].[dbo].[crm_objects]   OBJ_DET, 
      [foveaprocess_easycrm].[dbo].[crm_objects]   OBJ_FATHER, 
      [foveaprocess_easycrm].[dbo].[crm_kind]    OBJ_KN 
     WHERE 
     OBJ_DET.crm_obj_parent_idnum=OBJ_FATHER.crm_obj_idnum 
     AND OBJ_DET.crm_obj_kind = OBJ_KN.crm_kind_idnum 
     UNION ALL 
     SELECT 
      [crm_attrdat_fk_obj_idnum]     AS OBJ_ID 
      ,OBJ_FATHER_DATA.crm_obj_kind    AS OBJ_KIND 
      ,OBJ_KN.[crm_kind_name]      AS OBJ_KIND_NAME 
      ,OBJ_FATHER_DATA.crm_obj_name    AS FATHER_NAME 
      ,[crm_attrdat_fk_obj_idnum]     AS FATHER_ID 
    ,case OBJ_ATTR_DATA.crm_attr_datatype WHEN 'A' THEN [crm_attrdat_data_A1] END AS OBJ_NAME 
     ,OBJ_ATTR_DATA.crm_attr_name     AS OBJ_DESC 
     ,[crm_attrdat_isactive]      AS OBJ_ACTIVE 
    FROM 
      [foveaprocess_easycrm].[dbo].[crm_attrdata]   OBJ_DATA, 
      [foveaprocess_easycrm].[dbo].[crm_attributs]   OBJ_ATTR_DATA, 
      [foveaprocess_easycrm].[dbo].[crm_objects]   OBJ_FATHER_DATA, 
      [foveaprocess_easycrm].[dbo].[crm_kind]   OBJ_KN 

    WHERE 
      OBJ_DATA.crm_attrdat_fk_attr_idnum=OBJ_ATTR_DATA.crm_attr_idnum 
      AND OBJ_DATA.crm_attrdat_fk_obj_idnum=OBJ_FATHER_DATA.crm_obj_idnum 
      AND OBJ_ATTR_DATA.crm_attr_fk_kind_idnum = OBJ_KN.crm_kind_idnum   

       </customSQL> 
      </operationBindings> 
     </DataSource> 

回答

0

的probleme得到解決! 我不得不更改數據源的文件名,該文件名應該與數據庫中的表或視圖相同

0

單引號是不是在XML有效。嘗試改變這一行

,case OBJ_ATTR_DATA.crm_attr_datatype WHEN 'A' THEN [crm_attrdat_data_A1] END AS OBJ_NAME 

,case OBJ_ATTR_DATA.crm_attr_datatype WHEN &apos;A&apos; THEN [crm_attrdat_data_A1] END AS OBJ_NAME 
+0

它仍然不起作用! 這是一個XML文件的語法問題,因爲我嘗試了一個簡單的SQL查詢但仍然存在相同的問題 – SBarney