nur den Datensatz mit BEIDEN Bedingungen

24/11/2009 - 15:26 von Mario Schulz | Report spam
Hallo,

ich grübel schon etwas lànger und komme einfach nicht weiter.

Ich möchte alle Datensàtze (Kunden) haben, die an einer weiteren Tabelle
(Kundengruppen) hàngt. Jetzt möchte ich nur die Kunden haben die BEIDE
Kundengruppen zugeordnet worden sind :

SELECT KundenNummer FROM KundenSTD

LEFT OUTER JOIN KundenGruppenSTZ AS KUNDENGRUPPENSTZ_INV ON (
KundenSTD.PK_KUNDENSTD = KUNDENGRUPPENSTZ_INV.PK_KUNDENSTD )

LEFT OUTER JOIN KundenGruppenSTD AS
KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC ON (
KUNDENGRUPPENSTZ_INV.PK_KUNDENGRUPPENSTD =
KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC.PK_KUNDENGRUPPENSTD )

WHERE KundenSTD.PK_FilialenSTD = '3233686F-1F92-4CC5-BD9B-D50750320E0B'

AND KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC.AK_KUNDENGRUPPENSTD LIKE
'%101%' AND
KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC.AK_KUNDENGRUPPENSTD LIKE '%151%'

Das Ergbnis ist 0 :( ... leuchtet mir natürlich auch ein, aber wie kann
ich das abfragen ; ich möchte nicht wissen, ob eine von beiden
Kundengruppen vorhanden sind ; das wàre dann ein OR mit Klammer und das
funktioniert auch tadelos, ich will wissen bei welchen Kunden genau
diese beiden Kundengruppen vorhanden sind...

Vieleicht kann mir da jemand auf die Sprünge helfen ?

Danke !

Mario
 

Lesen sie die antworten

#1 Christoph Ingenhaag
24/11/2009 - 16:40 | Warnen spam
Hallo Mario,

ich weiss nicht ob ich dich recht verstanden habe, aber probier das mal aus
(mangels Tabellenskripte und Testdaten ungetestet).
Warum benutzt du eigentlich so elendig lange Tabellenaliase?

select
KundenNummer
from KundenSTD K
where
K.PK_FilialenSTD = '3233686F-1F92-4CC5-BD9B-D50750320E0B' and
exists
(
select 1
from KundenGruppenSTZ I
inner join KundenGruppenSTD S
on
I.PK_KUNDENGRUPPENSTD = S.PK_KUNDENGRUPPENSTD
where
I.PK_KUNDENSTD = K.PK_KUNDENSTD and
(
S.SRC.AK_KUNDENGRUPPENSTD like '%101%' or
S.SRC.AK_KUNDENGRUPPENSTD like '%151%'
)
)

Viele Grüße
Christoph

"Mario Schulz" schrieb im
Newsbeitrag news:hegqeu$kev$
Hallo,

ich grübel schon etwas lànger und komme einfach nicht weiter.

Ich möchte alle Datensàtze (Kunden) haben, die an einer weiteren Tabelle
(Kundengruppen) hàngt. Jetzt möchte ich nur die Kunden haben die BEIDE
Kundengruppen zugeordnet worden sind :

SELECT KundenNummer FROM KundenSTD

LEFT OUTER JOIN KundenGruppenSTZ AS KUNDENGRUPPENSTZ_INV ON (
KundenSTD.PK_KUNDENSTD = KUNDENGRUPPENSTZ_INV.PK_KUNDENSTD )

LEFT OUTER JOIN KundenGruppenSTD AS
KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC ON (
KUNDENGRUPPENSTZ_INV.PK_KUNDENGRUPPENSTD =
KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC.PK_KUNDENGRUPPENSTD )

WHERE KundenSTD.PK_FilialenSTD = '3233686F-1F92-4CC5-BD9B-D50750320E0B'

AND KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC.AK_KUNDENGRUPPENSTD LIKE
'%101%' AND KUNDENGRUPPENSTZ_INV_KUNDENGRUPPENSTD_SRC.AK_KUNDENGRUPPENSTD
LIKE '%151%'

Das Ergbnis ist 0 :( ... leuchtet mir natürlich auch ein, aber wie kann
ich das abfragen ; ich möchte nicht wissen, ob eine von beiden
Kundengruppen vorhanden sind ; das wàre dann ein OR mit Klammer und das
funktioniert auch tadelos, ich will wissen bei welchen Kunden genau diese
beiden Kundengruppen vorhanden sind...

Vieleicht kann mir da jemand auf die Sprünge helfen ?

Danke !

Mario



Ähnliche fragen