Avatar billede hej45 Nybegynder
30. maj 2001 - 11:25 Der er 28 kommentarer og
1 løsning

WHERE

SELECT DISTINCT [forretningsforbindelser].[forsikringsrådgiverid], [forretningsforbindelser].[kundeid], [forretningsforbindelser].[kundenavn]
FROM ((forretningsforbindelser INNER JOIN [ff-rel] ON [forretningsforbindelser].[kundeid]=[ff-rel].[kundeid]) INNER JOIN forsikringsaftaler ON [ff-rel].[policeid]=[forsikringsaftaler].[policeid]) INNER JOIN roller ON [ff-rel].[rolleid]=[roller].[rolleid]
WHERE [forretningsforbindelser].[forsikringsrådgiverid]=[indtast forsikringsrådgiverid] And [forsikringsaftaler].[policetype] IN (152,153) And [roller].[rolleid]=301;

dette virker næsten...
der skal være 4 kriterier iorden
forsikrådgid
policetype=152
policetype=153
rolleid=301

problemet er at policetype 152 og 153 enkeltvis accepteres, og ikke som jeg vil at de begge skal være opfyldt for at en linie vises.

det er som om sætningen [forsikringsaftaler].[policetype] IN (152,153)finder ELLER istedet for OG

har prøvet denne løsning:
prøv at erstatte [forsikringsaftaler].[policetype] IN (152,153)med[forsikringsaftaler].[policetype] = 152 AND[forsikringsaftaler].[policetype] = 153

virker heller ikke
????????????
Avatar billede nute Nybegynder
30. maj 2001 - 11:29 #1
det er fordi IN er lik med OR. Prøv heller å skrive:

...[forsikringsaftaler].[policetype] = 152 AND [forsikringsaftaler].[policetype] =153...

/nute
Avatar billede hej45 Nybegynder
30. maj 2001 - 11:32 #2
men det har jeg jo prøvet...det virker ikke!?
Avatar billede nute Nybegynder
30. maj 2001 - 11:36 #3
hov....sorry....leste ikke den siste linje i ditt spm :)

Du er sikker på at det finnes records i din database hvor alle kriterier oppfylles ?

det er forresten utrolig tungt å lese din SQL når du setter [] rundt alle navn...:-|
Avatar billede hej45 Nybegynder
30. maj 2001 - 11:41 #4
det gør access for mig...irriterer også mig
Avatar billede torbenkoch Nybegynder
30. maj 2001 - 12:55 #5
Access?? Hvorfor Access?? Dette er jo en MS SQL gruppe...
Avatar billede hej45 Nybegynder
30. maj 2001 - 12:58 #6
og, må jeg så ikke nævne ordet access...?
Avatar billede terry Ekspert
30. maj 2001 - 13:03 #7
hej45, as torbenkoch states, this is an MS SQL group. Even so, what is it you expect to get in the result?
must a kundeID have both a forsikringsaftale 152 AND also a 153?
Avatar billede torbenkoch Nybegynder
30. maj 2001 - 13:03 #8
Joda, men hvis spørgsmålet vedrører access så er den jo den gruppe, du skal stille det i *S*
Avatar billede hej45 Nybegynder
30. maj 2001 - 13:08 #9
yes it must have both 152 and 153 (and rolleid 301)
Avatar billede hej45 Nybegynder
30. maj 2001 - 13:11 #10
skal spml så stilles under generelt om databaser?
Avatar billede torbenkoch Nybegynder
30. maj 2001 - 13:11 #11
Det virker som om, at du på den måde kan have et kundenavn til at optræde flere gange i din forretningsforbindelser tabel?? Det er jo noget skidt, sådan som udgangspunkt, redundante data.

Avatar billede terry Ekspert
30. maj 2001 - 13:13 #12
well if this is the case then
...[forsikringsaftaler].[policetype] = 152 AND [forsikringsaftaler].[policetype] =153...

isnt going to work, and neither is OR.

If a kunde does have both 152 and 153 then you will get two records wif you use OR and none if you use AND. because a single record cant be both 152 AND 153...
Avatar billede terry Ekspert
30. maj 2001 - 13:14 #13
wif = if
Avatar billede hej45 Nybegynder
30. maj 2001 - 13:21 #14
but actually i dont mind getting two records, but i dont want records that have either 152 and 153. with or i get that. with and iget none. what #\"%\"% must i then do...
Avatar billede torbenkoch Nybegynder
30. maj 2001 - 13:26 #15
Prøv lige på dansk istedet, den fik jeg slet ikke *S*
Avatar billede torbenkoch Nybegynder
30. maj 2001 - 13:28 #16
Er det Access eller MS SQL? Ikke helt uvæsentligt da de bruger en noget forskellig syntaks...
Avatar billede hej45 Nybegynder
30. maj 2001 - 13:29 #17
jeg vil udskrive kundeid som har tegnet police type 152 og 153. hvis det sker at jeg må udskrive kundeid to gange så lad gå. det må jeg jo leve med.

...men jeg vil ikke udskrive kundeid som kun opfylder en af policetyperne
Avatar billede hej45 Nybegynder
30. maj 2001 - 13:30 #18
ok, det anede jeg ikke. jeg bruger access
Avatar billede torbenkoch Nybegynder
30. maj 2001 - 13:50 #19
Kan du ikke lige prøve at beskrive relationerne mellem dine tabeller, og samtidigt lige skrive din sql pænt formatteret uden [] - den er godt nok svær at gennemskue, som den står der...
Avatar billede hej45 Nybegynder
30. maj 2001 - 14:00 #20
FORRETNINGSFORBINDELSER
Kundeid Kundenavn Brancheid Forsikringsrådgid

FORSIKRINGSAFTALER
Policeid. Policetype

FFR-RELATION
Policeid Kundeid Rolleid

ROLLER
Rolleid    Rollenavn(ejer/medejer/begunstiget)


SELECT
forretningsforbindelser.forsikringsrådgiverid, forretningsforbindelser.kundeid, forretningsforbindelser.kundenavn

FROM
((forretningsforbindelser INNER JOIN [ff-rel] ON forretningsforbindelser.kundeid=[ff-rel].kundeid)

INNER JOIN forsikringsaftaler ON
[ff-rel].policeid=forsikringsaftaler.policeid)
INNER JOIN roller ON [ff-rel].rolleid=roller.rolleid

WHERE
forretningsforbindelser].forsikringsrådgiverid=indtast forsikringsrådgiverid AND
forsikringsaftaler.policetype=152 AND
forsikringsaftaler.[policetype=153 AND
roller.rolleid=301;
Avatar billede mwittrock Nybegynder
30. maj 2001 - 14:01 #21
Hvis du vil vælge de kunder, der BÅDE har policetype 152 OG policetype 153, skal du (i pseudo-SQL) sige

SELECT * FROM kunder
WHERE EXISTS (SELECT * FROM forsikringer WHERE policetype = 152 AND kundeid = kunder.kundeid)
AND EXISTS (SELECT * FROM forsikringer WHERE policetype = 153 AND kundeid = kunder.kundeid)

Hvordan denne pseudo-SQL skal skrives i dit konkrete tilfælde, kan jeg ikke hjælpe dig med, uden at vide mere om hvordan dine tabeller hænger sammen; det fremgår ikke af dit eksempel.
Avatar billede mwittrock Nybegynder
30. maj 2001 - 14:09 #22
Denne forespørgsel burde udvælge alle kunder fra tabellen ForretningsForbindelser, der både har en policetype 152 og 153:

SELECT *
FROM  FORRETNINGSFORBINDELSER AS ff
WHERE  EXISTS (SELECT * FROM FFR-Relation AS r INNER JOIN ForsikringsAftaler AS f ON r.PoliceID = f.PoliceID WHERE f.PoliceType = 152 AND r.KundeID = ff.KundeID)
AND    EXISTS (SELECT * FROM FFR-Relation AS r INNER JOIN ForsikringsAftaler AS f ON r.PoliceID = f.PoliceID WHERE f.PoliceType = 153 AND r.KundeID = ff.KundeID)
Avatar billede hej45 Nybegynder
30. maj 2001 - 14:31 #23
tak
Avatar billede karl_heinz Nybegynder
30. maj 2001 - 23:49 #24
Ellers kan du prøve

SELECT [1.års].[opgave]
FROM [DØK]
WHERE [jeg].[kan].[ikke].[finde].[ud].[af].[den]
AND WUSS

Avatar billede karl_heinz Nybegynder
30. maj 2001 - 23:51 #25
PS: hvis heller ikke kan finde ud af java-delen
kan skal det hele bare lægges en i et 3-dimensonelt matrix.
Avatar billede karl_heinz Nybegynder
30. maj 2001 - 23:58 #26
Min pik kan godt være herre skæv nogen gange
Avatar billede lars_frank Nybegynder
31. maj 2001 - 00:34 #27
Jamen alt dette fremgår det tydeligt i min Bog: \"Fald i søvn til databaser\".
For supplerende oplysninger, læs min ligeså tykke bog om rettelser til min første bog, eller mine overskuelige overhead skitser.
Avatar billede lars_frank Nybegynder
31. maj 2001 - 00:37 #28
Eller prøv også:

SELECT bukkake
FROM www.bukkake.com/bath
WHERE facecovered.asian=\"true\"
GROUP BY tits
Avatar billede lars_frank Nybegynder
31. maj 2001 - 13:57 #29
Prøv lige at spyt 2\'eren ud!
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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