Question

I want to do a join between 3 tables using a SQL query, Could you correct my syntax or give me the right syntax please ?my application does not start even with this mistake! I Thank You in advance here is my code:

<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>
Was it helpful?

Solution 2

the probleme is resolved ! I had to change the file name of the DataSource that should be identical to a table or view from the database

OTHER TIPS

Single-quote is not valid in XML. Try changing this line

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

to

,case OBJ_ATTR_DATA.crm_attr_datatype WHEN &apos;A&apos; THEN [crm_attrdat_data_A1] END AS OBJ_NAME
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top