Announcement

Collapse
No announcement yet.

Datum sortieren Deluxe.

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

  • #16
    ich habe jetzt heraus gefunden warum die gruppierung nicht klappt...

    und zwar gruppiert er nach allen Stellen der PLZ...aber er soll nur nach den ersten 2 Stellen gruppieren...

    wie stell ich das an?

    Comment


    • #17
      GROUP BY LEFT ([Plz], 2)

      Comment


      • #18
        und das funktioniert nicht.

        sortiert tortzdem nach allen stellen

        bzw. sagt er immer das plz in der select auswahl jetzt ungültig ist

        Comment


        • #19
          wie gesagt, Du könntest ja Dein SQL sowie die Fehlermeldungen mal posten...

          Comment


          • #20
            okay...hab alles so hinbekommen wie ich es möchte...danke nochmal!

            Bevor ich aber aber das forum mit sinnlosen neuen Anfänger-Themen flute schreib ich mein letztes Problem gleich mal hier rein:

            Ich habe 3 Datenbanken. In den 3 Datenbanken ist jeweils eine exact gleiche Tabelle drin "Belege".

            Nun möchte ich aus den 3 Datenbanken, die 3 Tabellen die mir, wenn eine Bedingung erfüllt ist, alle Datensätze aus der Spalte "Menge" ausgibt, sodass ich aus jeder Datenbank die Menge zu einer Artikelnummer nebeneinander vergleichen kann. Hier mein vorbereiteter Code:

            [highlight=sql]select [Beleg11].[Menge] as Umsatzmenge11
            ,[Beleg11].[Artikelnummer] as Artikelnummer_Allgemein
            ,[Beleg12].[Menge] as Umsatzmenge12
            ,[Beleg13].[Menge] as Umsatzmenge13

            from [Datenbank11].[Beleg] as Beleg11
            ,[Datenbank12].[Beleg] as Beleg12
            ,[Datenbank13].[Beleg] as Beleg13

            where ([Beleg11].[Belegnummer] = 'OR')[/highlight]

            Problem ist: er macht eine Abfrage...aber Beleg 12 und 13 wird nur eine einzige Menge fortlaufen ausgegeben...was aber wohl an der unfertigen Where-Bedingung liegt, wo ich zum nächsten Problem komm:

            Wie definier ich am besten, dass die where Bedingung bei allen 3 Datenbanken angewendet wird. Denn mit einer and o. or Verknüpfung rechnet er wieder unendlich lang.

            Helft mir bei meinem Anfänger-Denk-Fehler!

            achja...ich hab es auch schon mit "union" probiert, aber irgendwas mache ich falsch. denn es kommen trotzdem nur 2 spalten von allen 3 Tabellen untereinander. Wie kann ich das trennen?
            Zuletzt editiert von Brodi; 11.05.2010, 12:37.

            Comment


            • #21

              Comment


              • #22
                Mit Deiner Abfrage erstellst Du ein Kreuzprodukt, das geht so oder so nicht.

                Wenn es umbedingt "nebeneinander" sein muss:

                [highlight=SQL]SELECT Artikelnummer_Allgemein
                ,SUM(Umsatzmenge11) AS Umsatzmenge11
                ,SUM(Umsatzmenge12) AS Umsatzmenge12
                ,SUM(Umsatzmenge13) AS Umsatzmenge13
                FROM (
                SELECT [Beleg11].[Artikelnummer] AS Artikelnummer_Allgemein
                ,[Beleg11].[Menge] AS Umsatzmenge11
                ,0 AS Umsatzmenge12
                ,0 AS Umsatzmenge13
                FROM [Datenbank11].[Beleg] AS Beleg11
                WHERE ([Beleg11].[Belegnummer] = 'OR')

                UNION ALL
                SELECT [Beleg12].[Artikelnummer] AS Artikelnummer_Allgemein
                ,0 AS Umsatzmenge11
                ,[Beleg12].[Menge] AS Umsatzmenge12
                ,0 AS Umsatzmenge13
                FROM [Datenbank12].[Beleg] AS Beleg12
                WHERE ([Beleg12].[Belegnummer] = 'OR')

                UNION ALL
                SELECT [Beleg13].[Artikelnummer] AS Artikelnummer_Allgemein
                ,0 AS Umsatzmenge11
                ,0 AS Umsatzmenge12
                ,[Beleg13].[Menge] AS Umsatzmenge13
                FROM [Datenbank13].[Beleg] AS Beleg11
                WHERE ([Beleg13].[Belegnummer] = 'OR')
                ) AS UMS
                GROUP BY Artikelnummer_Allgemein
                ORDER BY Artikelnummer_Allgemein
                [/highlight]
                Olaf Helper

                <Blog> <Xing>
                * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                Comment


                • #23
                  Oh man...vielen vielen Dank für deine Mühe und schreibarbeit...du hast mir wirklich sehr geholfen. Danke.

                  Comment


                  • #24
                    Ich hab mal wieder diese alte Abfrage raus geholt: Folgendes Problem:

                    Ich möchte jetzt den Umsatz für jeden einzelnen monat anzeigen lassen, soweit so gut, indem ich in jeden subselect Datepart month eingeb, funktioniert dies auch.


                    Problem 1: Der Monat wird als Zahl ausgegeben. Wie kann ich ihn als Text ausgeben? Also: wenn Monat '1' dann 'Januar', Monat '2' - 'Februar' usw.

                    CONVERT und DATEPART verträgt sich irgendwie nicht bei mir?!

                    Problem 2:
                    Die letzte Zeile soll nochmal eine Gesamtsumme der gesamten Monaten anzeigen! Wie realisier ich das?

                    Comment


                    • #25
                      Originally posted by Brodi View Post
                      Problem 1: Der Monat wird als Zahl ausgegeben. Wie kann ich ihn als Text ausgeben? Also: wenn Monat '1' dann 'Januar', Monat '2' - 'Februar' usw.
                      a) CASE WHEN 1 THEN 'Januar'
                      ....
                      END

                      oder b)
                      Hilfstabelle für Monate erstellen und dann Joinen

                      oder c) (MSSQL-Spezial: SELECT DATENAME (M, GETDATE())

                      Originally posted by Brodi View Post
                      Problem 2:
                      Die letzte Zeile soll nochmal eine Gesamtsumme der gesamten Monaten anzeigen! Wie realisier ich das?

                      Schau mal in BOL unter GROUP BY WITH ROLLUP ....

                      Comment


                      • #26
                        Okay...das funktioniert...danke!

                        Habs mit CASE gemacht. Aber wie kann ich nach Monats-Zahlen-Wert sortieren? Jetzt sortiert er die Monate ja leider Alphabetisch!

                        Comment


                        • #27
                          Achso...habs jetzt einfach in der Orderby Klausel nochmal andersrum mit CASE geschrieben. Geht bestimmt eleganter...aber es funktioniert!

                          Gibts eigentlich noch eine Möglichkeit, wenn in einem Monat keine Umsätze verbucht werden, das es trotzdem alle Monate anzeigt, aber eben mit Umsatz jeweils 0?
                          Zuletzt editiert von Brodi; 20.07.2010, 16:02.

                          Comment


                          • #28
                            Okay...um es nochmal anders zu formulieren. Ich möchte das es immer Januar bis Dezember anzeigt, und in den Monaten, wo kein Umsatz ist soll es 0,00 anzeigen.
                            Wie realisier ich das am Besten?

                            Comment


                            • #29
                              Hilfstabelle für Monate erstellen und dann left-Joinen

                              Comment


                              • #30
                                aber ohne Hilfstabellen gibts keinen Weg?

                                Comment

                                Working...
                                X