[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2012
    Beiträge
    10

    SQL Problem mit create table und doppelten Feldnamen

    Hallo zusammen,

    ich versuche mit
    "create table neuetabelle as ( select * .... ) with data"
    eine neu datei per SQL zu erstellen.

    In dem select statement joine ich mehrer tabellen (jeder tabelle gebe ich einen alias).
    Nun habe ich das Problem, dass die verschiedenen Tabellen tw. die gleichen Feldnamen haben.
    Ich bekomme immer die Fehlermeldung:"Spaltenliste erforderlich."
    Wenn ich beim select einzelnen Spalten auswähle funktioniert es auch, aber sobald eine Spalte doppelt vorkommt wird der SQL nicht ausgeführt.

    => Da es sehr umständlich ist jede Spalte explizit mit einem alias zu versehen, würde ich gerne wissen ob es möglich ist jeder Spalte aus Tabelle A und B und C automatisch einen alias zu geben.
    Ich stelle mir das so vor: Alle Feldnamen aus Tabelle A mit A... beginnen usw...

    Danke

    Gruß
    Michael

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Du kannst dir ein Hilfsprogramm schreiben dass dein CREATE TABLE zusammenbastelt.
    Die Spaltennamen kannst du über die System-View SYSCOLUMNS oder ähnliche in einer Schleife einlesen.

    lg Andreas

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.370
    Da musst du leider die Namen entsprechend eindeutig machen:

    create table neuetabelle as (
    select
    a.f1 as a_f1,
    b.f1 as b_f1,
    :
    from mytable1 a
    join mytable2 b on a.key=b.key ...
    ) with data

    Eine andere Chance hast du da leider nicht.
    Wenn du nur die Namen einer Tabelle umbenennen musst geaht das auch so:

    select a.*, b.f1 as b_f1 ...
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Oct 2012
    Beiträge
    10
    hallo andreas,

    danke das wäre bestimmt eine möglichkeit aber ist auch ziemlich aufwendig; gibts da nix einfacheres

    in einem qry ist es doch auch so, dass wenn ich 2 tabellen joine welche die gleichen feldnamen haben macht er automatisch in der ausgabe datei
    datum und datum01, kndnr und kndnr01 usw...
    => das 'muß' doch auch irgendwie mit SQL direkt funktionieren ??


    Tabelle A besteht z.B. aus Feld kndnr / name / datum
    Tabelle B besteht aus
    kndnr / pos / artnr
    Tabelle C besteht aus
    kndnr / preis / datum

    bei dem SQL hab ich nun das problem, dass wenn ich select * mache kann kein create table ausgeführt werden da ja die feldnamen kndnr, datum mehrmals vorkommen.

    ich könnte es umgehen, indem ich sage
    create table.... ( select a.*, b.kndnr as bkndnr, c.kndnr as ckndnr, c.datum as cdatum ......... ) with data
    aber ist halt sehr aufwending da meine tabellen ca 100 felder haben.

    gruß
    michael

  5. #5
    Registriert seit
    Oct 2012
    Beiträge
    10
    hallo herr fürchau,

    danke
    ist ja blöd

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.370
    Nein ist es nicht.
    SQL sollte immer qualifiziert arbeiten.
    Wenn ich embedded SQL oder STRSQL verwende, generiert die SQL-Schicht im Resultset eindeutige Namen für den Zugriff.
    Bei berechneten Feldern sogar nur Namen als Digits(Position im Resultset) wenn kein Name definiert wurde.

    Anders sieht es natürlich beim CREATE TABLE aus, hier wird zuerst die Definition ausgeführt und danach erst das Resultset gebildet.
    Im Prinzip fasst eben der "Create Table as ..." zwei Befehle zusammen:
    1. Create Table
    2. Insert into ... select ... from
    Daher ist eben eine explizite Benamung erforderlich.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. SQL CREATE VIEW komplexes Problem
    By bettina_martin in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 11-02-10, 14:56
  2. problem mit eigener sql function
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 26-05-06, 16:37
  3. SQL Problem
    By Lucky4712 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-05-06, 15:57
  4. SQL -> CREATE VIEW
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 17
    Letzter Beitrag: 11-05-06, 14:57
  5. SQL - Create Table X/Y Angabe Satzformat
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 25
    Letzter Beitrag: 05-11-04, 15:17

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •