Zitat Zitat von KingofKning Beitrag anzeigen
Hallo,
da ich auch kein SQL Spezialist bin, und bei den verschatelten SQL-Statements immer auf nie Nase falle, fand ich den Artikel von Brigitta bezgl. der UDFs ganz toll, da kann man die Aufgabe auf einzelne Abfragen runterbrechen.

Ich würde also ein SQL-Statement als UDF machen welches mir nur die Paletten zu einem Artikel anzeigt, ein weiteres welches mir nur den Verbrauch anzeigt und das dann in ein SQL-Statement zusammenbasteln.
Ist für mich dann übersichtlicher und nachvollziehbarer.

GG
Danke für das Lob,
aber ... in diesem Fall machen UD(T)Fs aus Perfomance Gründen keinen Sinn. Darauf hatte ich in dem Artikel auch extra hingewiesen.

Sinn machen dagegen durch aus Common Table Expressions (CTE), um die Abfrage aufzuteilen. M.E. sind sie leichter zu lesen als verschachtelte Sub-Selects.

Etwa so:
Code:
With a as (Select Fld1, Fld2, Key1, Key2 
             From Tab01
             Where Key1 = '01' and Fld5 = 'A'),

     b as (Select a.*, x.Fld2 as BFld2, x.Fld3 as BFld3
             From a Left join Tab02 x on     a.Key1 = x.Key1 
                                         and a.Key2 = x.Key2
             Where Fld3 > 0),

     c as (Select FT1, FT2, Sum(FT3) as Menge
             From TAB03
             Where Fld8='931' and Fld15='01'
             Group By FT1, FT2)

SELECT  b.Fld1, b.Fld2, Count(BFld2), Sum(BFld3), Menge
   FROM b left Outer Join c on     FT1 = KEY1 
                               and FT2 = KEY2            
GROUP BY b.Fld1, b.Fld2
ORDER BY b.Fld1, b.Fld2
Birgitta