Claudia TT.: SQL-SELECT in andere Tabelle mit anderen Spaltennamen

Hallo,

einfaches Beispiel:

Ich habe folgende Tabellen

Tabelle 1
BEREICH     MONAT      WERT

Tabelle 2
ABTEILUNG   MONAT      BETRAG

Nun will ich die Einträge aus Tabelle 1 in Tabelle 2 übertragen, aber die Spaltennamen sind nicht identisch.

Wie bekomme ich die Einträge z.B. von BEREICH in ABTEILUNG überführt ?

Danke für die Hilfe an eine SQL-Anfängerin

  1. Hallo

    Ich habe folgende Tabellen

    Tabelle 1
    BEREICH     MONAT      WERT

    Tabelle 2
    ABTEILUNG   MONAT      BETRAG

    Nun will ich die Einträge aus Tabelle 1 in Tabelle 2 übertragen, aber die Spaltennamen sind nicht identisch.

    mit

      
    INSERT INTO      -- Füge ein in die  
        Tabelle2 (   -- Zieltabelle, in die  
        ABTEILUNG,   -- Zielspalten,  
        MONAT,  
        BETRAG  
    )                -- was Du  
    SELECT           -- auswählst aus den  
        BEREICH,     -- korrespondierenden Spalten,  
        MONAT,       -- deren Reihenfolge wichtig ist  
        BETRAG       -- und den Zielspalten entsprechen muss,  
    FROM  
        Tabelle1     -- der Quelltabelle  
    
    

    geht dies ganz einfach, was Dir auch die Dokumentation Deines DBMS hätte sagen können. Leider hast Du verschwiegen, mit welchem Du arbeitest :-(

    Anmerkungen:
    Leerzeichen in Tabellennamen erfordern, dass der Tabellenname gemäß den Vorschriften des Datenbankmanagementsystems (DBMS) maskiert werden muss, z.B. bei MySQL mit dem Backtick, bei MS SQL-Server oder MS Access (Jet-SQL) mit eckigen Klammern.
    Spaltennamen komplett in Großbuchstaben sind unüblich und schlechter Stil. Typischerweise werden dafür Kleinbuchstaben verwendet, um sie in den SQL-Statements von den Bestandteilen der SQL-Sprache zu unterscheiden. Für die wiederum ist es guter Stil, sie komplett groß zu schreiben. Es gibt auch DBMS, die diese Bestandteile automatisch in Großbuchstaben umwandeln.

    Freundliche Grüße

    Vinzenz

    1. Hallo

      Ich habe folgende Tabellen

      Tabelle 1
      BEREICH     MONAT      WERT

      Tabelle 2
      ABTEILUNG   MONAT      BETRAG

      Nun will ich die Einträge aus Tabelle 1 in Tabelle 2 übertragen, aber die Spaltennamen sind nicht identisch.

      mit

      INSERT INTO      -- Füge ein in die
          Tabelle2 (   -- Zieltabelle, in die
          ABTEILUNG,   -- Zielspalten,
          MONAT,
          BETRAG
      )                -- was Du
      SELECT           -- auswählst aus den
          BEREICH,     -- korrespondierenden Spalten,
          MONAT,       -- deren Reihenfolge wichtig ist
          BETRAG       -- und den Zielspalten entsprechen muss,
      FROM
          Tabelle1     -- der Quelltabelle

      
      >   
      > geht dies ganz einfach, was Dir auch die Dokumentation Deines DBMS hätte sagen können. Leider hast Du verschwiegen, mit welchem Du arbeitest :-(  
      >   
      > Anmerkungen:  
      > Leerzeichen in Tabellennamen erfordern, dass der Tabellenname gemäß den Vorschriften des Datenbankmanagementsystems (DBMS) maskiert werden muss, z.B. bei MySQL mit dem Backtick, bei MS SQL-Server oder MS Access (Jet-SQL) mit eckigen Klammern.  
      > Spaltennamen komplett in Großbuchstaben sind unüblich und schlechter Stil. Typischerweise werden dafür Kleinbuchstaben verwendet, um sie in den SQL-Statements von den Bestandteilen der SQL-Sprache zu unterscheiden. Für die wiederum ist es guter Stil, sie komplett groß zu schreiben. Es gibt auch DBMS, die diese Bestandteile automatisch in Großbuchstaben umwandeln.  
      >   
      >   
      > Freundliche Grüße  
      >   
      > Vinzenz  
        
      Vielen Dank, Vinzenz