Avatar billede jens Nybegynder
02. april 2001 - 22:46 Der er 6 kommentarer og
2 løsninger

Find nye navne i en DB som er indsat efter en dato

Hej

Jeg mangler en løsning på følgende:

Har en DB hvor der ligger en masse navne. Med navnet ligger der også en dato.

Jeg kan altså have en Db der f.eks. indeholder følgende:

hans  02022001
bent  02022001
john  03022001
bente  03022001
hans  03022001
hans  04022001
jørgen 05022001
peter  06022001
hans  06022001

Jeg vil nu se hvilke nye navne der er kommet i min DB siden 04022001 og frem til idag. Men nu er \"hans\" jo også med den 03022001 og 02022001, altså kan han ikke komme ind under kategorien \"nye navne\" efter 04022001 ( det kan jørgen og peter ), selv om han er med 06022001.

Hvordan kringler jeg den med SQL ?

Hilsen
Jens
Avatar billede netsrac Praktikant
02. april 2001 - 22:49 #1
Er det et dato felt ?
Avatar billede jens Nybegynder
02. april 2001 - 23:04 #2
det kan det hurtigt blive ;-)
Avatar billede netsrac Praktikant
02. april 2001 - 23:06 #3
Hvis det er et dato felt kan du bruge følgende

select * from dintabel where datofelt > #04-02-2001#
Avatar billede jens Nybegynder
02. april 2001 - 23:09 #4
ja, men så får jeg jo hans med - og det må han ikke, da han jo var med før den dato jeg søger på. Det er der mit problem ligger - at tage alle efter en dato, er ikke noget problem.

Jeg skal have alle nye navne efter en given dato - og jeg skal så tjekke om disse navne er med i datoer der er ældre en den jeg søger på....
Avatar billede dudal Nybegynder
03. april 2001 - 00:16 #5
SELECT DISTINCT(navn) FROM tabel Where Navn NOT IN (SELECT navn FROM tabel where datofelt > #04-02-2001#

Eller noget i den stil. :-)

/Jesper
Avatar billede madrich Nybegynder
03. april 2001 - 10:36 #6
vælg et bestemt navn fra en tabel hvor navnet ikke er nyere end fra dato 4-2-2001!

er der logik i det?
Avatar billede madrich Nybegynder
03. april 2001 - 10:59 #7
en løsning kan være! (her går jeg ud fra at det er vigtigt at du ved hvornår en bruger er blevet oprettet og hvornår han/hun sidst har været på siden)
1:lave et ny kolonne i basen navn: \"var_sidst_her_den\" (du har så tre kolonner \"bruger\" \"oprettet_den\" og \"var_sidst_her_den\"

2: så laver du bare et tjek der hvor dataen skrives databasen noget ala

hvis bruger eksister , så skriv ny dato i \"var_sidst_her_den\" feltet hvor bruger = brugernavnet
ellers
Skriv bruger i feltet \"ny_bruger\" og dato for oprettelse i \"oprettet_den\" feltet

3: derefter lnår du skal se om der er kommet nogle nye bruger i basen laver du så netsracs løsning

select bruger from dintabel where oprettet_den > #04-02-2001#

og det var så det!? eller hvad, hvis du vil have et mere fyldestgørende svar skal vi se noget kode eller få af vide hvad hulen du i det hele taget vil!
Avatar billede madrich Nybegynder
03. april 2001 - 11:12 #8
hvis du vil have alle entries med i din base, skal du oprette en særskilt tabel med oprettede brugere og en tabel der holder øje med folk der er aktive dvs

1 tabel med 2 kolonner bruger & oprettet_Den
1 tabel med 2 kolonner bruger & var_her_den

hvis du så vil se om der er nogen nye brugere oprettet skal du så lave samme Sqlstatement på den tabel med bruger & oprettet_den

select bruger from dintabel where oprettet_den > #04-02-2001#

mere udpenslet kan det vel næppe blive!
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
Kurser inden for grundlæggende programmering

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