Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[SQL] query problems

Pagina: 1
Acties:

  • markklok
  • Registratie: Oktober 2000
  • Laatst online: 20-11 12:50

markklok

< Tijdelijk buiten gebruik >

Topicstarter
Hallo,

Ik heb een situatie waar ik maar niet uitkom en hoop dat iemand mij hier mee kan helpen

Ik heb 2 tabellen.
In tabel 1 staan zaken (met bijbehorende velden) en in tabel 2 staan de kenmerken van de betreffende zaken.

Voorbeeld:

Tabel 1 (WS_CASE)
(Zaak id / aangemaakt door / aangemaakt op)
Afbeeldingslocatie: http://s13.postimage.org/68kblr4vr/Table1.jpg

Tabel 2 (OBJ_KENM)
(Type kenmerk / zaak id waaraan hij gerelateerd is / Waarde van het kenmerk)
Afbeeldingslocatie: http://s8.postimage.org/664e7ggbp/Table2.jpg

Tabel 2 wordt gevuld op het moment dat je in een applicatie een waarde in een veld vult.
Het kan dus voorkomen dat zaak 1 een kenmerk SAMENV heeft met een ingevulde waarde terwijl dit kenmerk voor zaak 2 niet bestaat.

Ik wil nu een querie maken die mij alle zaken geeft met een aantal kenmerken. Deze kenmerken bestaan soms wel maar soms ook niet. (ligt eraan of een gebruiker het ingevuld heeft in de applicatie)


Querie:

SELECT
WS_CASE.U##CASE_ID, (Zaak nr)
OBJ_KENM.U##WAARDE, (Waarde van het kenmerk)
OBJ_KENM.U##OBJECT_ID, (ID waarmee kenmerk is gekoppeld --> Case_ID)
OBJ_KENM.U##KENMERK_ID (Kenmerk soort)
FROM
OBJ_KENM
RIGHT JOIN WS_CASE
ON
WS_CASE.U##CASE_ID = OBJ_KENM.U##OBJECT_ID
WHERE
OBJ_KENM.U##KENMERK_ID = '00_M_DZA'

Bovenstaande querie geeft mij alleen de zaken die het kenmerk ‘00_M_DZA’ bevatten
Wat moet ik nu veranderen zodat ik alle zaken te zien krijg, maar waarvan bij sommige het veld leeg is omdat het kenmerk daar niet aanwezig is.

Naast mijn zaak id moeten er totaal 10 kenmerken getoond worden.


Als iemand tips heeft hoor ik het graag _/-\o_

Legion 7i i9 3080 32gb


  • Vozze
  • Registratie: December 2001
  • Laatst online: 13:19
Door de filtering in de WHERE-clause te zetten, wordt de hele set gefilterd op de waarde '00_M_DZA'. Dit veld kan echter ook leeg (NULL) zijn. Je zult de filtering op moeten nemen in de JOIN-conditie, zoals dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
 WS_CASE.U##CASE_ID, (Zaak nr)
 OBJ_KENM.U##WAARDE, (Waarde van het kenmerk)
 OBJ_KENM.U##OBJECT_ID, (ID waarmee kenmerk is gekoppeld --> Case_ID)
 OBJ_KENM.U##KENMERK_ID (Kenmerk soort)
 FROM
 OBJ_KENM
 RIGHT JOIN WS_CASE
 ON
 WS_CASE.U##CASE_ID = OBJ_KENM.U##OBJECT_ID
 AND
 OBJ_KENM.U##KENMERK_ID = '00_M_DZA'



Zie ook: http://myitforum.com/cs2/...ve/2007/11/16/108359.aspx

"He who thinks knows evertyhing, knows nothing" - Socrates


  • markklok
  • Registratie: Oktober 2000
  • Laatst online: 20-11 12:50

markklok

< Tijdelijk buiten gebruik >

Topicstarter
My Hereo :)

Super bedankt !

Legion 7i i9 3080 32gb