[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2015
    Beiträge
    8

    Ist es möglich?

    Schönen guten Morgen,

    vielleicht kann mir wer einen heißen Tip geben:
    Ich würde gerne folgende beiden Select in einer Ausgabe haben.
    Code:
    select distinct-- e.rvk as Verkauf_Nr,
    case
    when a.rvk='04' then 'hkast'
    when a.rvk='07' then 'ghirt'
    when a.rvk='11' then 'wrapp'
    when a.rvk='12' then 'mkais'
    when a.rvk='13' then 'bkohl'
    when a.rvk='14' then 'drich'
    when a.rvk='15' then 'gklai'
    when a.rvk='16' then 'nmoit'
    when a.rvk='17' then 'igraf'
    when a.rvk='20' then 'bkais'
    when a.rvk='21' then 'mseid'
    when a.rvk='22' then 'jland'
    when a.rvk='23' then 'gried'
    when a.rvk='28' then 'sgers'
    when a.rvk='29' then 'kboeg'
    when a.rvk='30' then 'rbaie'
    when a.rvk='31' then 'tpend'
    when a.rvk='51' then 'jjaec'
    when a.rvk='73' then 'aschm'
    when a.rvk='84' then 'dbern'
    when a.rvk='85' then 'bprel'
    when a.rvk='86' then 'cshol'
    when a.rvk='91' then 'glins'
    when a.rvk='92' then 'arott'
    when a.rvk='93' then 'krmoi'
    when a.rvk='94' then 'agraf'
    when a.rvk='95' then 'dpaku'
    when a.rvk='98' then 'sduel'
    when a.rvk='A01' then 'azu01'
    when a.rvk='A02' then 'azu02'
    when a.rvk='A03' then 'azu03'
    when a.rvk='A04' then 'azu04'
    when a.rvk='BEC' then 'abeck'
    end as Benutzer, a.rvk, count(a.RBELAR) as Angebote, count(c.ivor) as Vorgaenge_im_ABI, substr(a.RBENBS, 3, 5) as Benu
    from kd.AVRE a
    left join jsrstati.sbname b on a.rvk = b.sbnr
    left join kd.AVIFS c on substr(a.RBENBS, 3, 5)=c.benutz
    where concat(rakdnr, ravor) not in (Select concat(rakdnr, ravor) from kd.avre where RBELAR='AN'and rgrint='S') 
    and a.RBELAR='AN' and a.RFOLBA='' and(a.RBELDT like '16%' or a.RBELDT like '15%') and a.RGRINT =''
    group by a.rvk, b.sbname, c.benutz
    ;
    select c.benutz as Benutzer, count(c.ivor) as Vorgaenge_im_ABI --Vorgänge mit ABI
    from kd.AVIFS c
    where c.iudn IN ('bemerkung.txt','kommentar.txt')
    and c.IDATUM > '2015-01-01'
    group by c.benutz
    ;
    Das Problem ist dass es so direkt keinVergleichsfeld in den Tabellen gibt, sonst wäre es easy.
    vielen herzlichen Dank schon im voraus...

  2. #2
    Registriert seit
    Apr 2005
    Beiträge
    385
    1. Spalten in beiden Select's kompatibel halten! (1. SELECT Benu, RVK , COUNT... 2. SELECT Benu. COUNT...)
    2. UNION

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Das Stichwort ist "Derived Table":

    Select Benutzer, .... from (
    select case bla bla end as Bentzer
    from abc
    group by ....
    ) hugo
    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
    Aug 2001
    Beiträge
    2.873
    Es gibt allerdings noch andere Möglichkeiten:
    z.B. Über eine CTE eine Common Table Expression generieren und diese dann verknüpfen:
    Code:
    WITH xBenutzer as (Select * 
                         From (Values('04', 'hkast'),
                                     ('07' , 'ghirt'),
                                     ('11' , 'wrapp'),
                                     ..... ) x (xRVK, xUser)
    Select *
      From xBenutzer join Benutzer on RVK = xRVK 
              join Ohter Table on Benutzer = XUser ....
    Man könnte auch eine temporäre Tabelle oder View mit den Übersetzungen erstellen und diese dann verknüpfen

    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. #5
    Registriert seit
    Jan 2015
    Beiträge
    8
    Vielen herzlichen Dank für die Hinweise.
    Da ich irgendwie zu doof war die Tips von Ex-Azubi und Fuerchau umzusetzen hab ich`s doch mit inzelnen Views gemacht die dann in einem dritten View verbunden wurden.

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Views sind deshalb besser, weil sie wiederverwendbar sind.
    Common Table Expressions und Nested Sub-Selects gelten nur innerhalb eines SELECT-Statements.

    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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Wobei man dies auch wiederum in Views packen darf.
    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. Restore ohne IFS möglich?
    By SabineK in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 25-04-17, 17:19
  2. Länderübergreifende CCSID möglich?
    By SabineK in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 30-11-15, 15:24
  3. sql / like mit hex möglich ?
    By malzusrex in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-07-02, 10:09
  4. Kein anmelden mehr möglich........
    By vorderhaus in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 11-06-02, 15:53
  5. Zugriff auf AS/400-Ordner nicht möglich
    By Sven Keiselt in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 30-01-01, 12:33

Berechtigungen

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