Announcement

Collapse
No announcement yet.

Union all frage

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

  • Union all frage

    Hallo alle seits

    Ich benutze in meiner Abfrage Union All... Das Problem dass ich die ganze Zeit einer Fehlermeldung dieser Art bekomme:
    Meldung 156, Ebene 15, Status 1, Zeile 18
    Falsche Syntax in der Nähe des 'union'-Schlüsselwortes
    .
    Meine Abfrage sieht wie folgt aus:

    Code:
    select
            c.ILN,
            count(RDS_ID) as Zählmenge,
            cast(d.MATERIALART as varchar),
            sum(d.VERPACKUNGSGEWICHT) as Gewicht,
            convert(varchar,a.SYSCDAT,104) as Verarbeitungsdatum
    
            from ROHDATENSATZ a LEFT OUTER JOIN ARTIKEL_DETAIL d ON (a.ARTIKELNUMMER = d.ARTIKELNUMMER
                                                                AND d.GUELTIG_AB <= a.DATUM 
                                                                AND isnull(d.GUELTIG_BIS, getdate()) > a.DATUM)
                                            JOIN  TALON b ON ( a.ID = b.ID)
                                            JOIN  MARKT c ON ( b.ILN = c.ILN)
            
            where a.id is not null
            GROUP BY c.ILN, a.SYSCDAT, d.MATERIALART
            Order BY c.ILN, a.SYSCDAT, d.MATERIALART  
    
      union all
     
     select
            c.ILN,      
            count(RDS_ID) as Zählmenge,
            NULL AS DPG_MATERIALART,
            sum(d.VERPACKUNGSGEWICHT) as Gewicht,
            convert(varchar,a.SYSCDAT,104) as Verarbeitungsdatum
    
            from ROHDATENSATZ_NLS a LEFT OUTER JOIN ARTIKEL_DETAIL d ON (a.ARTIKELNUMMER = d.ARTIKELNUMMER
                                                                AND d.GUELTIG_AB <= a.DATUM 
                                                                AND isnull(d.GUELTIG_BIS, getdate()) > a.DATUM)
                                            JOIN  TALON b ON ( a.ID = b.ID)
                                            JOIN  MARKT c ON ( b.ILN = c.ILN)
            
            where a.id is not null
            GROUP BY c.ILN, a.SYSCDAT, d.MATERIALART
            Order BY c.ILN, a.SYSCDAT, d.MATERIALART
    Danke für eure Tipps

  • #2
    Hi,

    vielleicht geht es so:

    [highlight=sql]
    (SELECT
    c.ILN,
    count(RDS_ID) as Zählmenge,
    cast(d.MATERIALART as varchar),
    sum(d.VERPACKUNGSGEWICHT) as Gewicht,
    convert(varchar,a.SYSCDAT,104) as Verarbeitungsdatum

    FROM ROHDATENSATZ a
    LEFT OUTER JOIN ARTIKEL_DETAIL d ON (a.ARTIKELNUMMER = d.ARTIKELNUMMER
    AND d.GUELTIG_AB <= a.DATUM
    AND isnull(d.GUELTIG_BIS, getdate()) > a.DATUM)
    JOIN TALON b ON ( a.ID = b.ID)
    JOIN MARKT c ON ( b.ILN = c.ILN)
    WHERE a.id is not null
    GROUP BY c.ILN, a.SYSCDAT, d.MATERIALART
    )

    UNION ALL

    (SELECT
    c.ILN,
    count(RDS_ID) as Zählmenge,
    NULL AS DPG_MATERIALART,
    sum(d.VERPACKUNGSGEWICHT) as Gewicht,
    convert(varchar,a.SYSCDAT,104) as Verarbeitungsdatum

    FROM ROHDATENSATZ_NLS a
    LEFT OUTER JOIN ARTIKEL_DETAIL d ON (a.ARTIKELNUMMER = d.ARTIKELNUMMER
    AND d.GUELTIG_AB <= a.DATUM
    AND isnull(d.GUELTIG_BIS, getdate()) > a.DATUM)
    JOIN TALON b ON ( a.ID = b.ID)
    JOIN MARKT c ON ( b.ILN = c.ILN)
    WHERE a.id is not null
    GROUP BY c.ILN, a.SYSCDAT, d.MATERIALART
    )
    ORDER BY c.ILN, a.SYSCDAT, d.MATERIALART
    [/highlight]

    Danke für eure Tipps[/QUOTE]
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

    Viele Grüße Novi

    Comment


    • #3
      Er mag das ORDER BY nicht an der Stelle, wo es jetzt ist

      Enteder zum Schluß mit ORDER BY 1,3,5 (für Faule)

      oder Deine Query als Inline-Query und dann die äußere Abfrage sortieren
      (wie Novi das gerade gepostet hat....)

      Comment


      • #4
        Hi,

        Du darfst an dieser Stelle kein "order by" verwenden.
        Bei Union macht man das "order by" ans Ende. Das bezieht sich dann auf alle Selects gemeinsam.

        Gruß
        docendo discimus

        Comment


        • #5
          Dannnnkkkkke für eure Antworte jetzt klappt es

          Comment


          • #6
            Das nenne ich mal eine Absprache. Wir haben alle um 14:21 geantwortet.
            "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

            Viele Grüße Novi

            Comment

            Working...
            X