Avatar billede ldplusse Nybegynder
04. november 2004 - 14:59 Der er 3 kommentarer og
1 løsning

Find hvad en bruger mangler UDVIDET

Dette spørgsmål er en udvidelse tilsprøgsmål: http://www.eksperten.dk/spm/557884

Jeg har denne SQL streng:
SELECT DISTINCT F.FILMID, F.TITEL, F.GENRE, F.AC3, F.UNDERTEKSTER, F.SUB FROM FILM F
    LEFT JOIN MOVIE2USERS MO ON MO.MOVIEID = F.FILMID
    WHERE MO.MOVIEID NOT IN (SELECT movieid FROM Movie2Users WHERE userid =@USERID)

Som vælger de film som en bruger ikke har.
Men nu er det sådan at der kan være en opdateretversion af den film brugeren har og i dette tilfælde skal filmen stadig udskrives som om at brugren ikke har filmen.
det står i film.opdateretdato om der er en ny udgave af filmen.

i tabellen MOVIE2USERS:
Movie2User:
id  movieid  userid opdateretindehaver
1    153      34          1
2    153      25          1
3    153      27          1
4    154      25          1
5    154      27          1
5    154      34          0

Hvis vi antager at at film med MovieID 153 & 154 er opdateret film (i film.opdateret står der en dato) så skal film med MOVIEID 154 vælges da brugeren ikke har den opdateret version, med 153 skal springes over da brugeren har denne (valgt med 1)

Hvordan gør man det???
200 Point til den/de som giver løsningen.
Avatar billede arne_v Ekspert
04. november 2004 - 16:24 #1
gæt:

SELECT DISTINCT F.FILMID, F.TITEL, F.GENRE, F.AC3, F.UNDERTEKSTER, F.SUB FROM FILM F
    LEFT JOIN MOVIE2USERS MO ON MO.MOVIEID = F.FILMID
    WHERE MO.MOVIEID NOT IN (SELECT movieid FROM Movie2Users m2u WHERE userid =@USERID
                            AND opdateretindehaver=(SELECT MAX(opdateretindehaver) FROM Movie2Users WHERE movieid=m2u.movieid)
Avatar billede ldplusse Nybegynder
05. november 2004 - 07:58 #2
Syntax fejl i:
AND opdateretindehaver=(SELECT MAX(opdateretindehaver) FROM Movie2Users WHERE movieid=m2u.movieid)

Den melder: incorrect syntax near ")"
Avatar billede ldplusse Nybegynder
05. november 2004 - 08:07 #3
Der er også noget galt i koden, for kolonnen OpdateretDato som er i Film tabellen skal indeholde en dato (bare der står noget) før der skal tjekkes om man har den opdateret version.

Er der en speciel grund til at der bliver lavet en "m2u" da den allerede er lavet som "MO"
Avatar billede ldplusse Nybegynder
19. november 2004 - 11:48 #4
Lukker
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