Announcement

Collapse
No announcement yet.

Problem bei Umsatzberechnungen aus 2 Tabellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem bei Umsatzberechnungen aus 2 Tabellen

    Hallo

    Ich arbeite gerade an einem Projekt und momentan hab ich das buchstäbliche Brett vorm Kopf.

    Ich habe zwei Tabellen. Eine mit Umsätzen und eine andere mit den Kundenbeziehungen.

    Tabelle1:
    Code:
    KundenNr Umsatz Datum
    110010 289,00 24.02.2009
    110011  34,23  25.02.2009
    110012 324,78 26.02.2009
    110012 623,78 27.02.2009
    ....
    120012 102,89 27.06.2009
    Tabelle2:
    Code:
    KundenNr ÜKundenNr ... ...
    110011  110010 ... ...
    120012  110011 ... ...
    ....
    Das Summieren der Umsätze klappt hervorragend:
    Code:
    SELECT     KundenNr, SUM(Umsatz) AS Umsatzsumme
    FROM         dbo.Tabelle1
    WHERE     (YEAR(Datum) = 2009)
    GROUP BY KundenNr
    Wie kann ich es schaffen, für jede Zentrale die ihr untergeordneten Umsätze aufzusummieren. Ich hab schon an ein JOIN gedacht, aber weiß nicht wie ich die Verbindung schaffen soll, da es bei einigen Zentralen bis zu 5 oder 6 untergeordneten Stufen geben kann.

    BTW. Ich arbeite auf SQL 2008.

    LG H

  • #2
    Habe jetzt keine fertige Lösung, aber in SQL 2008 gibt es die Hierarchy-ID. Schaue dir das mal an, damit sollte dein Problem gut lösbar sein. Ansonsten braucht es eine UDF, um das zu lösen.

    bye,
    Helmut

    Comment


    • #3
      Hi

      Danke für die Antwort.

      Das mit der HierarchyID war richtig gut, aber jetzt häng ich an nem Problem fest.
      Ich hab die Beschreibungen von MS als Anleitung genommen und stehe jetzt vor dem Problem, das die KundenNr und die ÜKundenNr jeweils größer oder auch kleiner sein können. Von ca. 2300 Zeilen in der Tabelle werden nur 58 verarbeitet.

      Folgendes hab ich erledigt:
      • 3 Hilfstabellen angelegt und gefüllt
      • Codesnippsel gesammelt und zusammengefügt


      Code:
      WITH
      	paths
      	(
      		path,
      		KundenNr
      	) 
      AS
      (
      	-- This section provides the value for the root of the hierarchy
      	SELECT
      		hierarchyid::GetRoot() AS OrgNode,
      		C.KundenNr
      	FROM
      		dbo.Hilfstabelle AS C 
      	WHERE 
      		ÜKundenNr IS NULL 
      
      	UNION ALL 
      	-- This section provides values for all nodes except the root
      	SELECT 
      		CAST(p.path.ToString() + CAST(C.Num AS varchar(30)) + '/' AS hierarchyid), 
      		C.KundenNr
      	FROM
      		dbo.Hilfstabelle AS C 
      	JOIN
      		paths AS p 
      		ON
      		C.ÜKundenNr = P.KundenNr 
      )
      INSERT
      	dbo.Kunden_Hierarchie
      	(
      		OrgNode,
      		O.KundenNr,
      		O.KundenName,
      		O.ÜKundenNr,
      		O.ÜKundenName
      	)
      SELECT
      	P.path,
      	O.KundenNr,
      	O.KundenName,
      	O.ÜKundenNr,
      	O.ÜKundenName
      FROM
      	dbo.Kunden_Temp AS O 
      JOIN
      	Paths AS P 
      	ON
      		O.KundenNr = P.KundenNr
      GO
      Wie gesagt, irgendwann taucht eine ÜKundenNr auf, die erst später deklariert wird und dann hört er einfach auf. Hab schon rumgerätselt, wie ich es lösen. Bis jetzt ohne Erfolg. Habt Ihr ne Idee?

      LG H.

      Comment


      • #4
        Nochmal hi

        Ich hab das Problem jetzt anders lösen können. Ich werde berichten wenn ich fertig bin.

        Danke nochmal für den INPUT.

        LG H

        Comment

        Working...
        X