Složené SQL dotazy
Složené SQL dotazy je sestava několika jednoduchých SQL dotazů. Jednotlivé dotazy začínají dvojicí závorek <queryitem~name="jmeno"><sql> a končí dvojicí závorek </sql></queryitem>. Vyjímkou je druhá ukončovací závorka prvního dotazu, která se píše až za poslední dotaz složeného dotazu (viz. syntaxe). Složené dotazy se používají pouze jako výběr informací pro následný tisk.
<queryitem name="jméno1">
<sql>select ....</sql>
<queryitem name="jméno2">
<sql>select ....</sql>
</queryitem>
<queryitem name="jméno3">
<sql>select ....</sql>
</queryitem>
<queryitem name="jméno4">
<sql>select ....</sql>
</queryitem>
</queryitem>
Ve složených dotazech nelze porovnávat hodnoty pomocí znaků <,> nebo <>. Tyto znaky musíme nahradit a to následovně:
- místo znaku "<" napíšeme "<" Př.: Datum < "1.1.2002"
- místo znaku ">" napíšeme ">" Př.: Datum > "1.1.2002"
- místo znaku "<>" napíšeme "!=" Př.: Datum != "1.1.2002"
Nebo uzavřít text <sql> do značky <![CDATA[Tady je text]]>
Příklad: Chceme vybrat všechny označené Partnery a k nim všechny akce z druhu "kon"
<queryitem name="partneri"><sql> select idpartner, firma from partneri_partneri order by idpartner</sql> <queryitem name="akce"><sql> select * from partneri_akce akce where akce.idpartner=:idpartner and iddruh = 'kon'</sql> </queryitem> </queryitem>
Řádek akce.idpartner=:idpartner v posledním dotazu slouží k tomu, že vybrané akce se přiřadí ke správnému partnerovi vybranému ve druhém dotazu. U takovéhoto přiřazování se ukončovací závorka druhého dotazu musí napsat až za následný dotaz. Systému se tímto řekne že vybrané záznamy musí přiřazovat k záznamům vybraným předchozím dotazem.