Announcement

Collapse
No announcement yet.

variabler select (mit innerem select?)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • variabler select (mit innerem select?)

    guten tag,
    wie ersichtlich möchte ich die auftrags_menge abfragen in kalenderwoche 2 im jahre 2009, allerdings nur von den aufträgen welche die auftragsarten 1-6 beinhalten:

    SELECT (auftrags_menge) FROM auftraege WHERE
    kalenderwoche="2" AND
    jahreszahl="2009"
    AND
    (auftrags_art="art1"
    OR auftrags_art="art2"
    OR auftrags_art="art3"
    OR auftrags_art="art4"
    OR auftrags_art="art5"
    OR auftrags_art="art6")

    das funktioniert auch soweit, wenn die auftragsarten manuell eingetragen sind.

    die auftragsarten 1-6 möchte ich aber variabel halten. die auftragsarten sind dazu in einer referenztabelle gespeichert, welche man in etwa so ausliest

    SELECT `auftrags_art` FROM `referenz`

    das ergebnis dieser abfrage ist dann art1, art2, art3, art4, art5, art6

    variabel soll es sein, da es ist aber möglich das sich der name einzelner auftragsarten ändert, und/oder sich die anzahl an auftragsarten ändert.

    die lösung die ich nun suche sollte so aussehen das in der ersten selectabfrage in dem eingeklammerten bereich, also in

    (auftrags_art="art1"
    OR auftrags_art="art2"
    OR auftrags_art="art3"
    OR auftrags_art="art4"
    OR auftrags_art="art5"
    OR auftrags_art="art6")

    eine zweite abfrage oder eine variable steht die dort variabel mehrfach auftrags_art="xxx" einfügt und dazwischen ein OR schreibt...
    da das so sicher nicht funktioniert frage ich hiermit nach einer alternativen lösung mit gleichem effekt, habe gehört das man mit "eval" arbeiten muss, ist mir allerdings kein begriff

  • #2
    sowas
    Originally posted by fabse View Post
    (auftrags_art="art1"
    OR auftrags_art="art2"
    OR auftrags_art="art3"
    OR auftrags_art="art4"
    OR auftrags_art="art5"
    OR auftrags_art="art6")
    macht der IN Operator...
    [HIGHLIGHT="SQL"]SELECT auftrags_menge FROM auftraege WHERE
    kalenderwoche="2" AND
    jahreszahl="2009"
    AND
    auftrags_art IN = (SELECT auftrags_art FROM referenz)
    [/HIGHLIGHT]

    Comment


    • #3
      das "=" zeichen nach dem IN muss scheinbar weg, aber dann funktioniert es einwandfrei,

      vielen dank !

      Comment

      Working...
      X