[NEWSboard IBMi Forum]
Seite 2 von 4 Erste 1 2 3 ... Letzte

Thema: SQL Problem

  1. #13
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von cbe Beitrag anzeigen
    Ich frage mich nur, ob man sich darauf verlassen kann, dass die Sortierung immer dieselbe ist, denn sonst würde im 2. Unter-Select ein anderer Satz verwendet.
    Im Visual Explain kann man sich den Prozessablauf anzeigen lassen. Dort sieht man, dass das "Fetch First N Rows" als letztes statement ausgeführt wird. Also nach dem Order By.

  2. #14
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Bei obiger Aufgabenstellung sieht man ja eigentlich, dass dies alles nichts bringt da die TelNr ja immer aus der gleichen Datei stammt.
    Hier möchte man aber alle TelNr'n gleichzeitig haben.

    Dies kann man ggf. noch als ein Feld per Concat ja selektieren:

    select ...,
    b.telnr1 concat b.telnr2 as telnr,
    b.mobil1 concat b.mobil2 ... as mobil,
    ... from myfile
    left join adr b
    where ...
    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

  3. #15
    Registriert seit
    Apr 2006
    Beiträge
    85
    Zitat Zitat von andreaspr@aon.at Beitrag anzeigen
    Hi,

    probiers mal mit "fetch first row only" wenn es wirklich egal ist ob du den ersten oder letzten DS bekommst!

    Code:
     
    CREATE VIEW cmsms1/zkna2_view AS ( 
    select MANDT, KUNNR, NAME1, NAME2, STRAS, ORT01, PSTLZ, LAND1, 
    SORTL, VALUE(TEL1, '') AS TEL1, 
    VALUE(TEL2, '') AS TEL2, 
    VALUE(MOBIL1, '') AS MOBIL1, 
    VALUE(MOBIL2, '') AS MOBIL2, 
    VALUE(EMAIL1,'') AS EMAIL1, 
    VALUE(EMAIL2,'') AS EMAIL2, STCEG FROM ( 
    SELECT A.kunnr, A.NAME1, 
    (SELECT tel_number FROM r3p02data/adr2 
    WHERE addrnumber=A.adrnr and consnumber='001' fetch first row only) AS TEL1, 
    (SELECT tel_number FROM r3p02data/adr2 
    WHERE addrnumber=A.adrnr and consnumber='002' fetch first row only) AS TEL2, 
    (SELECT tel_number FROM r3p02data/adr2 
    WHERE addrnumber=A.adrnr and consnumber='003' fetch first row only) AS MOBIL1, 
    (SELECT tel_number FROM r3p02data/adr2 
    WHERE addrnumber=A.adrnr and consnumber='004' fetch first row only) AS MOBIL2, 
    (SELECT smtp_addr FROM r3p02data/adr6 
    WHERE addrnumber=A.adrnr and consnumber='001' fetch first row only) AS EMAIL1, 
    (SELECT smtp_addr FROM r3p02data/adr6 
    WHERE addrnumber=A.adrnr and consnumber='002' fetch first row only) AS EMAIL2 
    FROM r3p02data/kna1 a ) as A where kunnr<>'0000062871' )
    habe das jetzt genau SO übernommen, jedoch bekomme ich folgenden Fehler:

    Schlüsselwort FETCH nicht erwartet. Gültige Token: ) UNION EXCEPT


  4. #16
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    ... das liegt daran, dass Du wahrscheinlich noch nicht auf Release 6.1 bist. FETCH FIRST ROW ONLY in einem Sub-Select ist erst ab Release 6.1 möglich.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #17
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Also dann mal hopp, hopp: Releasewechsel

  6. #18
    Registriert seit
    Apr 2006
    Beiträge
    85
    Zitat Zitat von B.Hauser Beitrag anzeigen
    ... das liegt daran, dass Du wahrscheinlich noch nicht auf Release 6.1 bist. FETCH FIRST ROW ONLY in einem Sub-Select ist erst ab Release 6.1 möglich.

    Birgitta
    oh sch....... wie schau ich schnell nach welches release man hat auf der as/400 ?

  7. #19
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    GO PTF, Auswahl 5, Eingabetaste. Und dann die Angaben zum "Release der Basisoption" bei den Produkt-IDs "xxxx999" und "xxxxSS1".

    Oder mit nem CL-Programm: *KLICK*

    Oder so: DSPDTAARA QGPL/QSS1MRI

  8. #20
    Registriert seit
    Apr 2006
    Beiträge
    85
    okay, wir fahren auf V5R4.

    Releasewechsel ? Naja, das ist bei einem outgesourcten Rechner (eigentlich sinds 3) nicht ganz so einfach ;-)

    shit, jetzt kann ich das nicht benutzen, das "fetch first row only" wär genau DAS was ich gebraucht hätte

  9. #21
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Dann nimm doch MIN(...) wie weiter oben genannt.

  10. #22
    Registriert seit
    Apr 2006
    Beiträge
    85
    Zitat Zitat von Pikachu Beitrag anzeigen
    Dann nimm doch MIN(...) wie weiter oben genannt.
    naja, das wär ne möglichkeit, ABER:

    ich will das MIN bezogen auf das Feld CONSNUMBER. Will aber das Feld tel_number ausgeben.

    wie soll ich das machen. euer vorgeschlagenes select bezieht sich ja auf die tel_number.

  11. #23
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Paßt doch. Du brauchst natürlich ein MIN() in jedem Sub-SELECT. Wenn zum Beispiel im ersten Sub-SELECT zwei oder mehr Telefonnummern gefunden werden, treffen ja alle zu und du willst dann irgendeine von diesen. Dann nimm doch einfach die kleinste. Die erhältst du dann mit MIN() in diesem Sub-SELECT.

  12. #24
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Warum versuchst Du nicht das SQL-Statements umzuschreiben und joins zu verwenden, wie ich es bereits vorhin vorgeschlagen habe.

    Falls ich heute Abend Zeit habe werde ich das Statement umschreiben.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. problem mit eigener sql function
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 26-05-06, 16:37
  2. SQL Problem
    By Lucky4712 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-05-06, 15:57
  3. Problem bei Abfrage bei Imbedded SQL
    By cbe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-06-05, 16:21
  4. embedded SQL Performance Problem mit SCROLL
    By itec01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 16-09-04, 18:38
  5. Problem bei ILE COBOL mit sql connect to
    By rebe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-09-01, 13:55

Berechtigungen

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