SQL 2008 Zwischensumme abbilden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL 2008 Zwischensumme abbilden

    Hallo php Forum,

    durch die Suche im Internet bin ich auf Euch gestoßen, in der Hoffnung Ihr könnt mir helfen;-)

    Meine SQL-Kenntnisse (MS SQL Server 2008) sind nicht besonders gut, möchte aber meinen Stand vom blutigem Anfänger gerne erweitern.

    Ich benötige eine Auswertung die wie folgt aussehen soll:

    Belegnummer Datum Adressnummer Firma Brutto Gruppe Jahr
    12001 23.04.2011 1001 Müller 714 100 2011
    12002 26.04.2011 1001 Müller 714 100 2011
    12003 30.05.2011 1001 Müller 714 100 2011
    12004 31.05.2011 1001 Müller 714 100 2011

    Diese hier Soll die ZW-Summe sein:
    1001 Müller 2856 2011

    12009 26.04.2011 1002 Mayer 714 200 2011
    120069 27.04.2011 1002 Mayer 714 200 2011
    120070 31.05.2011 1002 Mayer 714 200 2011
    120071 31.05.2011 1002 Mayer 714 200 2011

    Diese hier Soll die ZW-Summe sein:
    1002 Mayer 2856 2011

    12005 23.04.2012 1001 Müller 714 100 2012
    12006 24.04.2012 1001 Müller 714 100 2012
    12007 23.05.2012 1001 Müller 714 100 2012
    12008 30.05.2012 1001 Müller 714 100 2012

    Diese hier Soll die ZW-Summe sein:
    1001 Müller 2856 2012

    120072 05.06.2012 1002 Mayer 714 200 2012
    120073 07.06.2012 1002 Mayer 714 200 2012

    Diese hier Soll die ZW-Summe sein:
    1002 Mayer 1428 2012

    Und zum Schluß Gesamtsumme:
    Jahr 2011 = XXXX Betrag
    Jahr 2012 = XXXX Betrag

    Folgende SQL-Abfrage habe ich erstellt:
    select beleg.Belegnummer, beleg.Datum, beleg.Adressnummer, beleg.Firma, beleg.Brutto,
    kunden.Gruppe,
    DATEPART (YY, beleg.datum) as Jahr
    from Beleg, Kunden
    where kunden.nummer = beleg.Adressnummer
    and DATEPART (YY, beleg.Datum) >= :'Jahr von'
    and DATEPART (YY, beleg.datum) <= :'Jahr bis'
    and kunden.Gruppe >= :'von Gruppe'
    and kunden.Gruppe <= :'bis Gruppe'
    and belegtyp = 'R'
    GROUP BY beleg.Belegnummer, beleg.Datum, beleg.Adressnummer, beleg.Firma, beleg.Brutto,
    kunden.Gruppe,
    DATEPART (YY, beleg.datum)

    UNION ALL
    SELECT NULL, NULL, Adressnummer, Firma, SUM (Brutto), Null, DATEPART (YY, beleg.datum)
    FROM Beleg
    GROUP BY DATEPART (YY, beleg.datum), Adressnummer, Firma
    Order BY DATEPART (YY, beleg.datum), Adressnummer

    Und mein Ergebnis sieht wie folgt aus:

    Belegnummer Datum Adressnummer Firma Brutto Gruppe Jahr
    12001 23.04.2011 1001 Müller 714 100 2011
    12002 26.04.2011 1001 Müller 714 100 2011
    12003 30.05.2011 1001 Müller 714 100 2011
    12004 31.05.2011 1001 Müller 714 100 2011
    [COLOR=red]1001 Müller 2856 2011[/COLOR]
    [COLOR=red]1002 Mayer 2856 2011[/COLOR]
    12009 26.04.2011 1002 Mayer 714 200 2011
    12069 27.04.2011 1002 Mayer 714 200 2011
    12070 31.05.2011 1002 Mayer 714 200 2011
    12071 31.05.2011 1002 Mayer 714 200 2011
    [COLOR=#ff0000]1001 Müller 2856 2012[/COLOR]
    12005 23.04.2012 1001 Müller 714 100 2012
    12006 24.04.2012 1001 Müller 714 100 2012
    12007 23.05.2012 1001 Müller 714 100 2012
    12008 30.05.2012 1001 Müller 714 100 2012
    [COLOR=black]1002 Mayer 1428 2012[/COLOR]
    12072 05.06.2012 1002 Mayer 714 200 2012
    12073 07.06.2012 1002 Mayer 714 200 2012

    Ich hoffe Ihr könnt mir helfen, damit die Darstellung und reihenfolge Richtig ist.
    Für euere Hilfe bedanke ich mich schon im Voraus.

    Gruß
    sundance69

  • #2
    Hallo Forum,

    hat den Keiner eine Idee?????

    Gruß
    sundance69

    Kommentar


    • #3
      Zitat von sundance69 Beitrag anzeigen
      hat den Keiner eine Idee?????
      Liegt vielleicht daran, dass hier die Meisten mit MySQL arbeiten?

      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Zitat von Kropff Beitrag anzeigen
        Liegt vielleicht daran, dass hier die Meisten mit MySQL arbeiten?

        Peter

        Hallo Peter,

        Danke, aber kann man eine Lösung nicht irgend wie auf SQL 2008 ableiten???

        Gruß
        Oli

        Kommentar


        • #5
          Zitat von sundance69 Beitrag anzeigen
          Danke, aber kann man eine Lösung nicht irgend wie auf SQL 2008 ableiten???
          Also ich habe selber nur ein wenig mit dem MS SQL-Server zu tun gehabt. Das reichte aber aus, um mir vor Augen zu halten, dass die Unterschiede teilweise gravierend sind.

          TOP entspricht bei MySQL einem LIMIT (hab ich zumindest so in Erinnerung) und ein UNION ALL gibt es bei MySQL überhaupt nicht. Um einen entsprechenden Query zusammenzubauen, müsste man schon einen MS SQL-Server sein Eigen nennen. Die Express-Version beinhaltet nicht alle Features und die Vollversion kostet Geld. Das ist halt die Crux mit kostenpflichtigen Programmen.

          Ich selber musste mal einen komplexen SQL-Query für eine Oracle-DB umschreiben und das war ziemlich heftig. Da braucht man unter Umständen sehr lange für.

          Peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Hi Peter,

            siehst Du dich in der Lage dazu? MS SQL 2008R2?

            Gruß
            Oli

            Kommentar


            • #7
              Zitat von sundance69 Beitrag anzeigen
              siehst Du dich in der Lage dazu? MS SQL 2008R2?
              Leider nein. Hab ich nicht zur Verfügung.

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                und wenn Du eine Testumgebung zur Verfügung hättest;-) z. B. per VPN

                SQL 2008 R2 und das Programm in dem das SQL Marko geschrieben-> sprich arbeiten soll!

                Kommentar


                • #9
                  Zitat von sundance69 Beitrag anzeigen
                  und wenn Du eine Testumgebung zur Verfügung hättest;-) z. B. per VPN

                  SQL 2008 R2 und das Programm in dem das SQL Marko geschrieben-> sprich arbeiten soll!
                  Sorry. Erstens habe ich Wochenende und zweitens mache ich nicht die Arbeit anderer Leute. Jedenfalls nicht für lau. Such doch mal nach einem Forum speziell für den MS SQL-Server. Da werden sie geholfen.

                  Peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Hi Peter,

                    niemand möchte Dir dein Wochenende wegnehmen!
                    Du sollst auch nicht die Arbeit für andere Leute machen, es war nur eine Frage ob die Möglichkeit besteht mit der entsprechenden Umgebung!
                    Und es hat keiner verlangt, daß es für lau sein soll!!

                    Was ist dein Stundensatz?

                    Gruß und noch ein schönes WE;-)
                    Oli

                    Kommentar


                    • #11
                      Summarizing Data with CUBE and ROLLUP

                      Kommentar


                      • #12
                        Hi little,

                        Danke, hat mir einbisschen weitergeholfen

                        Gruß
                        Oli

                        Kommentar

                        Lädt...
                        X