[NEWSboard IBMi Forum]
Seite 4 von 4 Erste ... 3 4

Thema: SQL Problem

  1. #37
    Registriert seit
    Apr 2006
    Beiträge
    85
    Zitat Zitat von Pikachu Beitrag anzeigen
    CREATE VIEW ViewName AS ( SELECT ... )
    stimmt, auch wieder logisch. man sieht hier die schwächen eines sap-programmieres was SQL anbelangt

  2. #38
    Registriert seit
    Apr 2006
    Beiträge
    85
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Die hab' ich unterschlagen, weil war auch in dem Statement, das gestern oder so gepostet wurde nicht drin.
    Birgitta
    hmmm, wie bring ich das mit der consnumber jetzt noch rein ins sql ?

    habe folgenden fall:

    Code:
     
    consnumber  tel_number      flgdefault
    1                0662/640 617       X
    2                0662/650 440
    3                0662/640 552
    Der View bringt in Spalte TEL1 jetzt die Nummer mit consnumber 1, das ist richtig.

    Aber in TEL2 steht jetzt die TElefonnummer mit consnumber 3 drinnen, das ist falsch. Hier möchte ich die Consnumber 2 haben, also die niedrigste Nummer.

  3. #39
    Registriert seit
    Apr 2006
    Beiträge
    85

    Unhappy

    so, habe jetzt das ganze fertig, die Performance passt jetzt halbwegs. Habe 2 Subselects drinnen, die sich meiner Meinung nach nicht vermeiden lassen, ABER:

    Jetzt habe ich ein neues Problem: wenn ich den View in ein SAVF packe, und den View auf einer anderen AS/400(wo die SAP-Daten liegen) wieder 'auspacke' funktioniert der Zugriff ordnungsgemäss AUSSER die 2 Felder tel2 und mobil2. Dort bekomm ich immer blank im Ergebnis.

    Was kann das sein ?

    Auf der anderen Maschine funktiokniert der Zugriff, dort liegen Kopien der 3 Datein KNA1,ADR2 und ADR6.




    Code:
     
     
    create view cmsms1/zkna4_view AS 
    (Select A.MANDT, A.KUNNR, A.NAME1, A.NAME2, A.STRAS, A.ORT01, 
    A.PSTLZ, A.LAND1, A.SORTL, 
     
    Coalesce(Min(Case When B.R3_User = '1' or (B.r3_user = ' ' and 
    B.flgdefault = 'X') 
    Then Tel_Number End), '') as Tel1, 
     
    Coalesce(Min(Case When B.R3_User = ' ' and B.flgdefault = ' ' 
    and B.consnumber = (Select Min(Consnumber) from 
    R3P02DATA/adr2 where addrnumer = A.adrnr and 
    R3_User = ' ' and flgdefault = ' ') 
    Then Tel_Number End), '') as Tel2, 
     
    Coalesce(Min(Case When B.R3_User = '3' or (B.r3_user = '2' and 
    B.flgdefault = 'X') 
    Then Tel_Number End), '') as Mobil1, 
     
    Coalesce(Min(Case When B.R3_User = '2' and B.flgdefault = ' '
    and B.consnumber = (Select Min(Consnumber) from 
    R3P02DATA/adr2 where addrnumer = A.adrnr and 
    R3_User = '2' and flgdefault = ' ') 
    Then Tel_Number End), '') as Mobil2, 
     
    Coalesce(Min(Case When C.FLGDEFAULT = 'X' 
    Then SMTP_ADDR End), '') as EMail1, 
     
    Coalesce(Min(Case When C.FLGDEFAULT = ' ' 
    and C.consnumber = (Select Min(Consnumber) from 
    R3P02DATA/adr6 where addrnumer = A.adrnr and 
    flgdefault = ' ') 
    Then SMTP_ADDR End), '') as EMail2, A.STCEG 
     
    From R3P02Data/KNA1 a 
    left outer join R3P02Data/ADR2 b on b.ADDRNUMBER = ADRNR 
    left outer join R3P02Data/ADR6 c on c.ADDRNUMBER = ADRNR 
    Where A.KUNNR < '0000999999' AND A.MANDT = '101' 
    AND A.BEGRU <> 'LOES' 
    Group By A.MANDT, A.KUNNR, A.NAME1, A.NAME2, A.STRAS, 
    A.ORT01, A.PSTLZ, A.LAND1, A.SORTL, A.STCEG)

  4. #40
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dann würde ich die Datenbasis prüfen, ob die Bedingungen auch dort so stimmen um die Werte zu ermitteln.
    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

  5. #41
    Registriert seit
    Apr 2006
    Beiträge
    85
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Dann würde ich die Datenbasis prüfen, ob die Bedingungen auch dort so stimmen um die Werte zu ermitteln.
    Das hab ich bereits getan, komm auf keinen grünen Zweig:

    Habe die 3 Datein in ein SAVF gepackt, auf die andere AS/400 transferiert, weil ich nur dort ein STRSQL machen kann. Auf der SAP AS/400 gibts das nicht.

    Nun, dort hab ich den View erstellt. Und dann hab ich den View auf die SAP AS/400 gestellt.

    Und dort bekomm ich die 2 Felder mit blank zurückgeliefert.

    OS/400 Release is auf beiden Maschinen gleich (V5R4)

    Seltsam !

  6. #42
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da die Views ja absolute Verweise auf die Libs und Dateien enthält, vermute ich mal, dass die bezogenen Objekte ggf. falsch sind.

    Auch ohne STRSQL kannst du die Views per Code erstellen.
    Bette den CREATE VIEW in ein SQLRPG/LE ohne absolute Bezüge (OPTION COMMIT=*NONE), setze die Libl auf dem Zielsystem korrekt und rufe das Programm auf.

    Alternativ kannst du den Create auch in ein QM-Query setzen und per STRQMQRY auf dem Zielsystem ausführen.
    REXX geht genauso.
    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. 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
  •