Avatar billede mmolsen Nybegynder
20. november 2007 - 11:10 Der er 6 kommentarer og
1 løsning

Lidt specielt udtræk

Hej Eksperter

Jeg har 3 tabeller (customer, supplier, sup_cust_conn)
Hvor sup_cust_conn bruges til at connecte customer og supplier sammen.

customer:
[custId],[companyName]
1, 'BørgeVVS'
2, 'LarsenElektric'
3, 'JenzVVS'
4, 'Allan Ent.'

Supplier:
[supId, supName]
1, 'sup1'
2, 'sup2'
3, 'sup3'

sup_cust_conn:
[connId, supId, custId]
1, 2, 1
2, 2, 2
3, 2, 3
4, 1, 2
5, 1, 3

via sup_cust_conn tabellen kan man se at 'sup2' levere til 3 alle 3 kunder, hvor 'sup1' kun levere til 2 (LarsenElektric & jenzVVS)


Nu vil jeg gerne lave et udtræk der lister alle kunder men samtidig viser om denne kunde har en forbindelse til en supplier, uden dubbletter.

Altså et output der ser sådan her ud når det gælder 'sup1'

[custId],[companyName],[isSelected]
1, 'BørgeVVS', FALSE
2, 'LarsenElektric', TRUE
3, 'JenzVVS', TRUE
4, 'Allan Ent.', FALSE

Kan det lade sig gøre?

Håber i forstår spørgsmålet.
Avatar billede mmolsen Nybegynder
20. november 2007 - 11:15 #1
lille fejl, efter rettelse. sup2 levere til 3 kunder ikke alle 3, da der jo er 4
Avatar billede pidgeot Nybegynder
20. november 2007 - 11:27 #2
Måske noget i denne stil (utestet):

SELECT custId,companyName,EXISTS(SELECT connId FROM sup_cust_comm WHERE customer.custId=sup_cust_conn.custId AND sup_cust_conn.supId=1) as isSelected FROM customer
Avatar billede mmolsen Nybegynder
20. november 2007 - 12:02 #3
Nu er jeg ikke så ferm med at bruge Exists, men når jeg læser om den kan jeg se at det bruges i forbindelse med "WHERE EXISTS...".

Jeg får også fejlen når jeg køre dit udtræk:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'EXISTS'.
Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'as'.
Avatar billede arne_v Ekspert
21. november 2007 - 03:17 #4
prøv:

SELECT custId,companyName,(SELECT COUNT(connId) FROM sup_cust_comm WHERE customer.custId=sup_cust_conn.custId AND sup_cust_conn.supId=1) as isSelected FROM customer
Avatar billede mmolsen Nybegynder
21. november 2007 - 08:47 #5
Svedigt. Den virker.

Har du nogen idé om den vil være effektiv ved 3000 poster i customer og måske 50000 i sup_cust_conn.

Giv et svar så får du point.
Avatar billede arne_v Ekspert
21. november 2007 - 15:23 #6
Ikke super effektiv, men med passende index burde den vaere til at leve med.

Og et svar.
Avatar billede arne_v Ekspert
21. januar 2008 - 04:49 #7
så mangler du bare at acceptere svaret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester