Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Temporäre Tabelle Fehlermeldung "affected by last query"

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Mike90, 1 Oktober 2012.

  1. Mike90

    Mike90 Benutzer

    Hallo zusammen,

    ich möchte unter SQL Server 08 R2 eine temporäre Tabelle erstellen, die den Durchschnittlichen Bestand jeder Materialkategorie mit Bezeichnung enthält, um mit diesen Daten weiterrechnen zu können.

    Code:
    CREATE TABLE #TEMPDurchschnittsBestand (ID_KategorieReporting INT PRIMARY KEY)
    SELECT    dbo.Materialstamm.KategorieReporting ,
                    SUM(dbo.Bestandsdaten.Bestand * dbo.Preis.Staps) / 4 AS DurchschnittsBestand INTO #DurchschnittsBestand
    FROM        dbo.Bestandsdaten INNER JOIN
                          dbo.Preis ON dbo.Bestandsdaten.Materialnummer = dbo.Preis.Materialnummer INNER JOIN
                          dbo.Materialstamm ON dbo.Bestandsdaten.Materialnummer = dbo.Materialstamm.Materialnummer
    GROUP BY dbo.Materialstamm.KategorieReporting
    
    Bei der Ausführung erscheint jedoch die Fehlermeldung "7 rows affected by last query". Die sieben Zeilen stehen dabei wahrscheinlich für die jeweiligen Kategorien.

    Kann mir jemand sagen, wo der Fehler liegt?

    Vielen Dank im Voraus :)

    VG,
    Mike
     
  2. ukulele

    ukulele Datenbank-Guru

    Ich habe das jetzt nicht ausprobiert aber löscht du die Tabelle bevor du sie neu erzeugst oder wird die "überschrieben"?

    Verwende doch einfach eine View oder warum muss es eine Tabelle sein?
     
  3. Mike90

    Mike90 Benutzer

    Hallo Ukulele,

    die Tabelle wird komplett neu erzeugt.

    Mit Views hab ich es bereits probiert, allerdings bin ich dort in eine totale Sackgasse gelandet. Das Erzeugen von temporären Tabellen ist sozusagen nochmal ein Neuanfang, wo ich mich aber nicht auskenne.

    Viele Grüße,
     
  4. ukulele

    ukulele Datenbank-Guru

    Ich leider auch nicht :)

    Fehlt dir da nicht auch noch eine Spalte DurchschnittsBestand in der Tabelle?
     
  5. Tommi

    Tommi Datenbank-Guru

    Hallo Mike,

    wenn du eine Temporäre Tabelle mit CREATE erstellst, musst du auch mit dem Befehl INSERT weiterarbeiten.
    Eine temporäre Tabelle unterscheidet sich von der Handhabung nicht von einer statisch angelegten Tabelle.

    Wenn du das CREATE nicht verwendest, kannst du eine temporäre Tabelle direkt erstellen, wenn du vor der FROM-Klausel das INTO #DurchschnittsBestand benutzt.
    Ein CREATE der temporären Tabelle ist dann nicht notwendig.

    Bei dem SELECT wird dann auch kein Ergebnis in Tabellenform ausgegeben.
    Du erhälst nur eine Text-Info, dass x Zeilen in die temporäre Tabelle eingefügt worden sind.

    Führst du dann in dem Abfragefenster ein
    Code:
    SELECT * FROM #DurchschnittsBestand
    aus, so wird dir der Inhalt der temporären Tabelle auch in Tabellenform ausgegeben.

    Ein weiteres Ausführen eines SELECT ... INTO führt dann auch zu einer Fehlermeldung.
    SQL-Server meldet dann, dass die temporäre Tabelle bereits existiert.

    Mit dem Befehl
    Code:
    DROP TABLE #DurchschnittsBestand
    kannst du die temporäre Tabelle wieder entfernen.

    Viele Grüße,
    Tommi
     
    Mike90 und ukulele gefällt das.
  6. Mike90

    Mike90 Benutzer

    Hallo Tommi,

    vielen Dank! Das waren die Hinweise, die ich gebraucht habe, es funktioniert :)

    Viele Grüße,
    Mike
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden