[sql] join query

Pagina: 1
Acties:

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Ik heb de volgende SQL-query:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT DISTINCT 
[pro1_bb-040].[cdprodukt] AS id, 
[pro1_bb-040].[omschr-35] AS name, 
[pro1_bb-042].[omschr-30] AS kind, 
[pro1_va-218].[cdvaluta] AS valuta, 
[pro1_va-218].[produktprijs] AS price, 
[pro1_bb-053].[omschr-16] AS eenheid, 
[pro1_af-801].[tekst] AS disc
FROM (((([pro1_bb-040] 
LEFT JOIN [pro1_bb-043] ON [pro1_bb-040].[cdprodukt]=[pro1_bb-043].[cdprodukt]) 
LEFT JOIN [pro1_bb-042] ON [pro1_bb-043].[cdprodgrp]=[pro1_bb-042].[cdprodgrp]) 
LEFT JOIN [pro1_va-218] ON [pro1_bb-040].[cdprodukt]=[pro1_va-218].[cdprodukt]) 
LEFT JOIN [pro1_bb-053] ON [pro1_va-218].[cdstandeenhd]=[pro1_bb-053].[cdstandeenhd]) 
LEFT JOIN [pro1_af-801] ON [pro1_bb-040].[cdprodukt]=[pro1_af-801].[id-tekst]

MAAR! Nu wil ik het laatste veld [pro1_af-801].[tekst] alleen laten zien als "[pro1_af-801].[cdtabel]='bb-062'".
Dit gaat niet met een WHERE omdat hij dan heel het record niet laat zien. Heeft iemand een id hoe ik alleen dit veld weg haal?

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

Ik denk dat je met een geneste query al een heel eind kan komen. :)

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


Verwijderd

...LEFT JOIN [pro1_af-801] ON [pro1_bb-040].[cdprodukt]=[pro1_af-801].[id-tekst] AND [pro1_af-801].[cdtabel]='bb-062'

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Op woensdag 19 december 2001 12:19 schreef Otis het volgende:
...LEFT JOIN [pro1_af-801] ON [pro1_bb-040].[cdprodukt]=[pro1_af-801].[id-tekst] AND [pro1_af-801].[cdtabel]='bb-062'
Gaat dus niet he... Geen AND in een join.

maar eh, ik kwam net zelf ergens op:
[code]SELECT DISTINCT
[pro1_bb-040].[cdprodukt] AS id,
[pro1_bb-040].[omschr-35] AS name,
[pro1_bb-042].[omschr-30] AS kind,
[pro1_va-218].[cdvaluta] AS valuta,
[pro1_va-218].[produktprijs] AS price,
[pro1_bb-053].[omschr-16] AS eenheid,
[pro1_af-801].[tekst] AS disc
FROM (((([pro1_bb-040]
LEFT JOIN [pro1_bb-043] ON [pro1_bb-040].[cdprodukt]=[pro1_bb-043].[cdprodukt])
LEFT JOIN [pro1_bb-042] ON [pro1_bb-043].[cdprodgrp]=[pro1_bb-042].[cdprodgrp])
LEFT JOIN [pro1_va-218] ON [pro1_bb-040].[cdprodukt]=[pro1_va-218].[cdprodukt])
LEFT JOIN [pro1_bb-053] ON [pro1_va-218].[cdstandeenhd]=[pro1_bb-053].[cdstandeenhd])
LEFT JOIN [pro1_af-801] ON [pro1_bb-040].[cdprodukt]=[pro1_af-801].[id-tekst]
WHERE [pro1_af-801].[cdtabel]='bb-062' OR IsNull([pro1_af-801].[tekst])

Verwijderd

O nee? in SQL Server werkt dat gewoon, is ook logisch, want het hoort bij de ON expressie, wat een willekeurige expressie kan zijn.

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Op woensdag 19 december 2001 12:29 schreef Otis het volgende:
O nee? in SQL Server werkt dat gewoon, is ook logisch, want het hoort bij de ON expressie, wat een willekeurige expressie kan zijn.
Dat was het eerste wat ik probeerde, maar het werkte niet :(
MS Access...

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Dit:

...LEFT JOIN [pro1_af-801] ON ([pro1_bb-040].[cdprodukt]=[pro1_af-801].[id-tekst] AND [pro1_af-801].[cdtabel]='bb-062')

Werkt dan weer wel ;)

JIPPIE, zelf gevonden, maar toch bedankt voor jullie hulp :)

Verwijderd

Zie je wel dat het wel kan :) Tja, dat je de expressie even moet isoleren van de rest in MS Access is access' fout. Het gaat om het idee.
Pagina: 1