1 Reply Latest reply: Oct 23, 2013 2:35 PM by Gysbert Wassenaar RSS

    Conceptual DB Questions about QlikView

      I am working with the demo version of Qlikview and I am accessing a Microsoft SQL data warehouse that gets updated 2X per day.  I don't understand the methods behind using the LOAD statements along with my SQL calls.

       

      Is the LOAD statement where all of the Join structure should be?  It seems that Qlikview does this automatically when like fieldnames are found, however inner, left and outer joins need to be specified for my data.  I find it very hard to believe that there is no graphical interface to help edit these joins, just a screen that shows you what has been done. (worthless)

       

      I need answers to these specific questions -

       

      1. How do you manage the automatic joins that are made between multiple tables in a Qlikview document. 

      2. What is best practice for creating joins etc. should I do this in SQL or the LOAD statement ?

      3. Why is the LOAD command PRIOR to the SQL call ?  this makes no sense at all - (this is not that important, it just pissed me off)

       

      I guess this is enough to start -

       

      Thanks -

        • Re: Conceptual DB Questions about QlikView
          Gysbert Wassenaar

          1. Qlikview uses field names to associate tables. The way to manage the association is by renaming fields so the tables get associated the way you want.

           

          2. One sql statement results in 1 (or zero) tables. If you do the joins in sql then your database creates one recordset that is returned to Qlikview and becomes one table in Qlikview. If you need to get data from different databases and then combine these into one table then any joins need to be created in Qlikview.

          And this article is something you might find useful: Understanding Join, Keep and Concatenate

           

          3. The load command preceding the sql statement is called a preceding load. The result of the sql statement is piped into the preceding load statement. This is not always necessary, but sometimes you will want to further process the data using Qlikview specific functions. See this blog post: Preceding Load. Qlikview doesn't understand or parse any sql. Any sql statement is send as-is(*) to the database. It's processed only by the database so should be in the correct sql dialect of the database.

           

           

          (*) but if qlikview variables are used in the sql statement then those are first replaced with the values that the variables contain.