Avatar billede peterfup Nybegynder
20. maj 2002 - 21:37 Der er 12 kommentarer og
1 løsning

Slette tupler med forældet dato...

Hejza...

Jeg har en tabel 'Bolig' med en attribut 'oprettelsesdato' af typen smalldatetime. Jeg vil gerne ha' lavet en automatisering således der hver dag søges i gennem for tupler hvor denne dato er over 6 mdr. gammel og sletter disse.
Hvis ikke der kan hjælpes med automatiseringen, så måske bare med en statement.

Hvis denne tuppel slettes, slettes tupler som en foreign key peger på så også? (Det var planen)

/PeterFup
Avatar billede peterfup Nybegynder
20. maj 2002 - 21:48 #1
Hvordan sammenligner man en smalldatetime med den nuværende dato?
Avatar billede ocp Nybegynder
20. maj 2002 - 22:27 #2
Hvad er en tuppel?
Avatar billede peterfup Nybegynder
20. maj 2002 - 22:56 #3
det er en række i tabellen!

Jeg har fundet lidt, men nu har jeg et View der indeholder alle fundne tupler med udløbet dato:

CREATE VIEW udlobet
as
select * from Boligonske
where senestebekraeftelsesdato <=dateadd(mm, -6, getDate())

samt

delete From udlobet where idnummer > 0

men jeg har en kundetabel som peger på disse boligønsker og disse skal også slettes, men det ska jo ske inden jeg kalder ovenstående delete.

Denne statement skal vel se nogenlunde sådan ud:

delete from kunde
where boligonske = (alle boligønske id's i view'et)

Hvordan skal den udformes?
Avatar billede tmceu Praktikant
20. maj 2002 - 23:05 #4
delete from kunde
where boligonske IN (SELECT ID FROM DitView)

Subselect'en returnerer en liste over ID's. Du behøver dog ikke lave et view først, hvis du eks. gør som dette

delete from kunde
where boligonske IN (select ID from Boligonske
where senestebekraeftelsesdato <=dateadd(mm, -6, getDate())
)
Avatar billede peterfup Nybegynder
20. maj 2002 - 23:06 #5
delete from Kunde where boligonske = (select idnummer from udlobet)

nå, men det var jo meget nemt alligevel...
Desværre ingen point til jer...
Avatar billede peterfup Nybegynder
20. maj 2002 - 23:07 #6
sorry så dig ikke tmceu - smid lige et svar til da du var hurtigere en mig!
Avatar billede tmceu Praktikant
20. maj 2002 - 23:10 #7
S'gerne :-)

Desuden vil dit eget forslag fejle, hvis der returneres mere end én række fra din subselect. Du skal bruge IN, ellers vil du få fejlen "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."
Avatar billede tmceu Praktikant
20. maj 2002 - 23:11 #8
Det er i'øvrigt første gang jeg nogensinde har set nogen anvende ordet tuppel - faktisk troede jeg ikke der var andre end mig der kendte det :-D
Avatar billede peterfup Nybegynder
20. maj 2002 - 23:12 #9
var lige ved at teste med to return værdier, men dit forslag er meget pænere da jeg skal bruge det i en stored procedure og egentligt ikke har andet at bruge det view til!
Avatar billede peterfup Nybegynder
20. maj 2002 - 23:13 #10
jeg troede da at alle kendte tuppel, men der ka man bare se!?!?!
Avatar billede tmceu Praktikant
20. maj 2002 - 23:14 #11
Tak. Det er altid en glæde at kunne hjælpe :-)
Avatar billede tmceu Praktikant
20. maj 2002 - 23:15 #12
Jeg tror det er meget udbredt i matematiske/teoretiske kredse (håber ikke jeg har fornærmet dig), men det er ikke specielt udbredt blandt "folket" og slet ikke hos Microsoft diciple.
Avatar billede ocp Nybegynder
21. maj 2002 - 10:01 #13
Jeg ville nok bare kalde det en "post" (record).
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