Avatar billede farouche Nybegynder
18. oktober 2000 - 19:06 Der er 8 kommentarer og
1 løsning

except i MS SQL

Jeg har skrevet følgende til MS SQL 7 :

(select stregkode, levnr from LeverandoerBetingelse)
except
(select stregkode, levnr from LevBetpopdat)

Men DB\'en vil ikke acceptere det.


Kan det ikke gøre i MS SQL eller er der en anden måde at gøre det samme.

Jeg skal bruge de Stregkode, LevNr fra LeverandoerBetingelse, som ikke er i LevBetPopDat

Select stregkode, LevNr
from leverandoerbetingelse
where (Stregkode, LevNr) not in
(Select Stregkode, LevNr
from LevBetPopDat)

Virker heller ikke

Hvad gør jeg

Stregkode, LevNr er en sammensat Primary key
i begge tabeller


Avatar billede tigerdyr Nybegynder
18. oktober 2000 - 21:51 #1
Har du prøvet med:
SELECT Stregkode, LevNr FROM Leverandoerbetingelse WHERE NOT EXISTS (SELECT Stregkode, LevNr FROM LevBetPopDat)
Avatar billede farouche Nybegynder
18. oktober 2000 - 22:22 #2
Dette giver et tomt resultat, da jeg ønsker de records der er i Leverandoerbetingelse, men ikke er i LevBetPopDat.

Dit forslag giver de records fra LeverandoerBetingelse som ikke eksisterer i LevBetPopDat, altså det omvendte
Avatar billede tigerdyr Nybegynder
18. oktober 2000 - 22:40 #3
Jamen så prøver vi da at vende rundt på det :o)

SELECT Stregkode, LevNr FROM LevBetPopDat WHERE NOT EXISTS (SELECT Stregkode, LevNr FROM Leverandoerbetingelse)

Hvad siger den så ? (jeg er en anelse for træt til at analysere det igennem, sorry)
Avatar billede tigerdyr Nybegynder
18. oktober 2000 - 22:42 #4
Men bortset fra det burde:
SELECT Stregkode, LevNr FROM LeverandoerBetingelse WHERE Stregkode, LevNr NOT INT (SELECT Stregkode, LevNr FROM LevBetPopDat)
da sådan set også virke fint!
Avatar billede farouche Nybegynder
18. oktober 2000 - 23:39 #5
Ang. SELECT Stregkode, LevNr FROM LevBetPopDat WHERE NOT EXISTS (SELECT Stregkode, LevNr FROM Leverandoerbetingelse)

Så kan man jo ikke vælge noget, der ikke esisterer fra en tabel
Avatar billede farouche Nybegynder
18. oktober 2000 - 23:40 #6
Den vil ikke acceptere , i WHERE stregkode, LevNr
Avatar billede ldanielsen Nybegynder
20. oktober 2000 - 13:36 #7
Prøv:

SELECT lb.Stregkode, lb.LevNr
FROM LeverandoerBetingelse lb LEFT OUTER JOIN LevBetpopdat lbo ON lb.Stregkode = lbo.Stregkode AND lb.LevNr = lbo.LevNr WHERE lbo.Stregkode is NULL AND lbo.LevNr IS NULL

Den er jo let at tilpasse, hvis det ikke er helt det du skal bruge
Avatar billede tigerdyr Nybegynder
20. oktober 2000 - 19:05 #8
doh, klart nok...den beklager sig selvfølgelig over at feltnavnene er ens i begge tabeller!
Avatar billede farouche Nybegynder
20. oktober 2000 - 19:23 #9
Har fundet en løsning  :

select stregkode, levnr
from LeverandoerBetingelse
Where  LeverandoerBetingelse.stregkode +
Convert(VarChar(15),LeverandoerBetingelse.levnr) not in (select LevBetpopdat.stregkode +
Convert(VarChar(15),LevBetpopdat.levnr) from LevBetpopdat)
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