|
|
| (Není zobrazeno 513 mezilehlých verzí od 4 dalších uživatelů.) |
| Řádek 1: |
Řádek 1: |
| '''Stored procedure (Generátor sestav II)'''
| |
|
| |
|
| Generátor sestav ve volbě (sql definice) podporuje zpracování jen určitých '''standardizovaných''' příkazů .sql.
| |
|
| |
| Nepodporuje zpracování '''rozšířených příkazů''' ze sad daných databázových serverů, např. TRANSACT SQL (Microsoft SQL server).
| |
|
| |
| Nicméně částečně toto lze obejít tím, že se příkazy uloží do ''stored procedure'' a generátor je uzpůsoben na možnost zavolání (vykonání) takové procedury.
| |
|
| |
|
| |
| Postup:
| |
|
| |
| 1. Vytvoření '''stored procedure''' v dané databázi.
| |
|
| |
| 2. Vytvoření [[Generátor sestav II (nová definice SQL)|nové definice sql]], která obsahuje '''volání procedury''', např.
| |
| execute dbo.sp_smeny
| |
|
| |
| <small>dbo představuje konkrétního vlastníka</small>
| |
|
| |
| == Odkazy ==
| |
| * [[Generátor sestav II (nová definice SQL)]]
| |
| * [[Generátor sestav II]]
| |
| * <small>Helpdesk id 27003</small>
| |
|
| |
| <!--
| |
| AWT – id 27003 – Petr H
| |
| Požadavek: Nepovolený sql příkaz
| |
| Dobrý den,
| |
| generátor sestav je vytvořen na generování sestav z sql příkazů ne komplexního TRANSACT SQL scriptu.Nicméně byla provedena
| |
| úprava, která umožní volat stored procedure z generátoru sestav. Vámi požadovaný script prosím vložte do stored procedure a
| |
| v generátoru sestav do pole pro zadání SQL příkazu napište volání procedury, např: execute dbo.sp_smeny
| |
| Při tomto postupu nelze na výslednou sestavu aplikovat práva na osobní čísla.
| |
|
| |
| Adam Fišer: AWT
| |
| 1. sloupec: osobní číslo
| |
| 2 až n-tý sloupec: kódy směn z číselníku (např. 1,2,3,A,B,C,D,K,Př.)
| |
| hodnoty: počet hodin z agendy Pořizování směn
| |
| --------------------------------------------------------------------
| |
|
| |
| DECLARE @cols NVARCHAR(2000)
| |
| SELECT @cols = COALESCE(@cols + ',[' + smena + ']'
| |
| ,'[' + smena + ']')
| |
| FROM smen_kody
| |
| ORDER BY smena
| |
| /*print @cols*/
| |
|
| |
| DECLARE @sqlToRun varchar(1000)
| |
| SET @sqlToRun = '
| |
| SELECT * FROM
| |
| (
| |
| select
| |
| os_cislo,
| |
| hodiny,
| |
| smena
| |
| FROM
| |
| smenovnice
| |
| LEFT OUTER JOIN smen_mzd_pol ON (smenovnice.id_smen_pol = smen_mzd_pol.id)
| |
| LEFT OUTER JOIN smen_kody ON (smen_mzd_pol.id_smeny = smen_kody.id)
| |
|
| |
| ) as s
| |
| PIVOT (
| |
| SUM (hodiny)
| |
| FOR smena IN ( '+@cols+' )
| |
| ) as spivot'
| |
|
| |
| EXEC (@sqlToRun)
| |