Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 6 van 6

Onderwerp: Rijen met conditie in kolommen weergeven

  1. #1
    Vraag is niet opgelost

    Rijen met conditie in kolommen weergeven

    Hallo,

    Ik ben een beginnende SQL gebruiker en ik heb een problem waar ik niet uitkom.
    Ik heb een aantal rijen die ik in een kolom wil weergeven, zie onder.

    Ik heb de tabel als volgt:
    Order sub ID status
    609011 01 01 R
    609011 01 02 P
    609011 01 03 R
    en hier staan er nog wel een aantal ID's in.

    Ik wil dan kunnen kiezen welke ID's ik wil weergeven en dan wel als volgt:
    In dit voorbeeld alleen ID 01 en 02.

    Order sub ID status ID status
    609011 01 01 R 02 P

    Ik weet niet hoe ik dit moet schrijven.
    Wie kan mijn helpen?
    Met vr.gr.
    Marco

  2. #2

    opgelost

    Dit is een iets andere opzet maar het komt op hetzelfde neer.
    Door 2 keer hetzelfde bestand te gebruiken maar dan met een andere naam lukt het.

    select ptfppla.poors# salesorder, ptfppla.poord# order, ptfppla.sosor# pos, A.worew# wk_panel, A.wored# dag_panel, A.wopcst status_panel, B.worew# wk_dm, B.wored# dag_dm, B.wopcst status_dm, postw# week, postd# dag
    from nsli02.ptfppla
    left outer join nsli02.ptfwola A
    on A.woord# = poord#
    and A.wosor# = sosor#
    and A.wowtid = '1'
    Left outer join nsli02.ptfwola B
    on B.woord# = poord#
    and B.wosor# = sosor#
    and B.wowtid = '2'
    where sospcs not in ('dep', 'pro')
    and postw# between '1710' and '3535'
    order by postw#, postd#

  3. #3
    Ik zit met hetzelfde probleem. Ik moet deze query draaien op een tabel in een ERP database (Progress OpenEdge 11.3) en kan dus niet zomaar een tweede bestand aanmaken met een andere naam. Ik had bedacht om met en subquery te werken, maar krijg de foutmelding dat de subquery meerdere regels oplevert (wat ik ook wel begrijp, omdat ik in de subquery nog niet heb opgegeven dat hij alleen de waarde hoeft op te halen voor het corresponderende product uit de hoofdquery). Hoe kan ik dat doen, of dit probleem op een andere manier tackelen?

    Brontabel bb-043:

    Code:
    cdproduct	cdprodcat	cdprodgrp
    1000	B	Nike
    1000	C	Shirts
    2000	B	Adidas
    2000	C	Shirts
    3000	B	Nike
    3000	C	Socks
    Gewenst resultaat:

    Code:
    Product	Brand	Category
    1000	Nike	Shirts
    2000	Adidas	Shirts
    3000	Nike	Socks
    Code:

    Code:
    Select
      PUB."lb-180".cdprodukt,
      PUB."lb-180".cdstandeenhd,
      PUB."bb-040"."omschr-35",
      PUB."bb-040".zoeknaam,
      (Select
        PUB."bb-043".cdprodgrp
      From
        PUB."bb-043" Inner Join
        PUB."bb-040"
          On PUB."bb-040".cdprodukt = PUB."bb-043".cdprodukt
      Where
        PUB."bb-043".cdprodcat = 'B'),
      (Select
        PUB."bb-043".cdprodgrp
      From
        PUB."bb-043" Inner Join
        PUB."bb-040"
          On PUB."bb-040".cdprodukt = PUB."bb-043".cdprodukt
      Where
        PUB."bb-043".cdprodcat = 'C')
    From
      PUB."bb-040" Inner Join
      PUB."lb-180"
        On PUB."bb-040".cdprodukt = PUB."lb-180".cdprodukt
    Where
      PUB."lb-180".cdadmin = '01'
    Laatst aangepast door ArjanVos : 28 maart 2017 om 16:07 Reden: typo

  4. #4
    Toch gelukt! Even AS invoegen bij hernoemen van tabellen

    Code:
    SELECT
      PUB."lb-180".cdprodukt,
      PUB."lb-180".cdstandeenhd,
      PUB."bb-040"."omschr-35",
      PUB."bb-040".zoeknaam,
      A1.cdprodgrp AS Brand,
      A2.cdprodgrp AS BusinessUnit
    FROM
      PUB."bb-040"
      INNER JOIN PUB."lb-180" ON PUB."bb-040".cdprodukt = PUB."lb-180".cdprodukt
      INNER JOIN PUB."bb-043" AS A1 ON PUB."lb-180".cdprodukt = A1.cdprodukt
        INNER JOIN PUB."bb-043" AS A2 ON PUB."lb-180".cdprodukt = A2.cdprodukt
    WHERE
      PUB."lb-180".cdadmin = '01' AND
      A1.cdprodcat = 'BRN' AND
      A2.cdprodcat = 'B'
    Laatst aangepast door ArjanVos : 29 maart 2017 om 13:24

  5. #5
    Toch de code nog iets verbeterd. Ik wou namelijk alle producten, ongeacht of in tabel bb-043 wel of niet alle categorieën waren ingevuld. Nu dus met een left join gewerkt en filter in de join opgenomen.

    Code:
    SELECT
      P.cdprodukt AS Product,
      P.cdstandeenhd,
      PUB."bb-040"."omschr-35",
      PUB."bb-040".zoeknaam,
      A1.cdprodgrp AS Brand,
      A2.cdprodgrp AS BusinessUnit,
      A3.cdprodgrp AS B2B
    FROM
      PUB."bb-040"
      INNER JOIN PUB."lb-180" AS P ON PUB."bb-040".cdprodukt = P.cdprodukt
      LEFT JOIN PUB."bb-043" AS A1 ON P.cdprodukt = A1.cdprodukt AND A1.cdprodcat = 'BRN'
      LEFT JOIN PUB."bb-043" AS A2 ON P.cdprodukt = A2.cdprodukt AND A2.cdprodcat = 'B'
      LEFT JOIN PUB."bb-043" AS A3 ON P.cdprodukt = A3.cdprodukt AND A3.cdprodcat = 'B2B'
    WHERE
      P.cdadmin = '01'
    Laatst aangepast door ArjanVos : 29 maart 2017 om 13:52

  6. #6
    Probleem wat ik nu nog overhoud, is dat het wel heel erg traag gaat worden als ik op deze manier 10x left join op dezelfde tabel. Kan ik wat ik wil toch niet fixen met slechts één left join?

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Aanbiedingen