06. december 2010 - 13:45Der er
8 kommentarer og 1 løsning
hjælp til sql sætning
Jeg har en aktivitetskalender i en MS SQLdatabase hvor jeg skal ha fat i nogle aktiviteter der har forskellig gyldighedsperiode.
F.eks har jeg 2 gyldighedsperioder 010410 - 010411 og 251110 - 281110. og skulle gerne fange dem begge i en søgning, hvis jeg søger på alt der er gyldigt mellem 011010 - 011210 Tabellen indeholder bl.a felterne datofra og datotil altså noget med
SELECT * FROM Tabel Where datofra < 011010 or datofra >= 011010 and datotil >= 011210 order by dato......... - men denne duer ikke
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Jeg gaar ud fra at din foerste periode er fra 1 april 2010 til 1 april 2011 og din anden periode fra 25 november 2010 til 28 november 2010 og du vil fange alle perioder der er gyldige mellem 1 oktober 2010 og 1 december 2010.
Du skal saa soege efter perioder hvor datofra < 1 dec og datotil > 1 oct 2010. Med datoer i yyyy-mm-dd format skulle denne query virke:
SELECT * FROM Tabel1 WHERE datofra < '2010-12-01' AND datotil > '2010-10-01'
Jeg lavede for test en tabel hundevennen med nedenstaaende vaerdier. Af de fem perioder er de to foerste dine perioder, tredje og fjerde ligger henholdsvis for tidlig og for sent, men periode5 er gyldig mellem dine to skaeringsdatoer. Med denne query: SELECT * FROM hundevennen WHERE datofra < '2010-12-01' AND datotil > '2010-10-01'; faar jeg dette resultat:
Hej Christian_Belgien - du har fat i hvad jeg vil ha ud af min sqlsætning - men jeg kan desværre ikke teste på mine data nu da jeg ikke er på arbejde længere - i morgen tidlig tester jeg din sætning
Christian_Belgien Jeg har nu testet det og det virker. Jeg skal faktisk ha endnu et AND hægtet på sqlsætningen
så den kommer til at se sådan ud: SELECT * FROM Tabel1 WHERE datofra < '2010-12-01' AND datotil > '2010-10-01' and type = 'fyrværkeri' order by .........., men den virker ikke - den giver ihverfald ikke noget resultat. Jeg har prøet med () omkring datoerne altså SELECT * FROM Tabel1 WHERE (datofra < '2010-12-01' AND datotil > '2010-10-01') AND ..... men det virker ikke??
Var det et tillaegsspoergsmaal? Altsaa du har forskellige typer af perioder og du vil finde hvilke perioder af en bestemt type der falder indenfor et bestemt tidsrum og yderligere have det presenteret i en bestemt orden?
Jeg tilfoejede en kolonne 'type' til tabellen 'hundevennen' saaledes:
ALTER TABLE hundevennen ADD type VARCHAR(10);
UPDATE hundevennen SET type = 'fyrvaerk' WHERE navn = 'periode1'; UPDATE hundevennen SET type = 'fyrvaerk' WHERE navn = 'periode2'; UPDATE hundevennen SET type = 'fyrvaerk' WHERE navn = 'periode3'; UPDATE hundevennen SET type = 'vaerkfyr' WHERE navn = 'periode4'; UPDATE hundevennen SET type = 'vaerkfyr' WHERE navn = 'periode5';
Saa giver denne query: 'SELECT * FROM hundevennen WHERE datofra < '2010-12-01' AND datotil > '2010-10-01' AND type = 'fyrvaerk' ORDER BY datofra; '
dette resultat:
navn datofra datotil type periode1 2010-04-01 2011-04-01 fyrvaerk periode2 2010-11-25 2010-11-28 fyrvaerk
jeg har fået det til at virke - endnu engang tak for hjælpen
Synes godt om
Ny brugerNybegynder
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.