GlitterMedlem sedan juli 2003442 inlägg
Går det på något sätt att if:a eller köra en case i en whare sats ex:
SELECT *FROM tabell
WHERE id = '1' AND
IF datum > '2004-05-17' AND datum < '2004-05-20' then
datum > '2004-05-19'
END
ORDER BY ID
Altså när datum är imellan 17 och 20 då skall den hämta datumet 19...
@ndersMedlem sedan juni 200026 914 inlägg
Where styr ju bara vilka poster du ska hämta, inte vilka värden du ska hämta. I SELECT kan du bestämma det du frågar efter, men det vore finfint om du kunde upplysa oss om vilken dbms du använder, så vi slipper gissa.
SELECT fält1, fält2, CASE WHEN datum BETWEEN '2004-05-17' AND '2004-05-20' THEN '2004-05-19' ELSE datum END AS datum FROM tabell WHERE... ORDER BY...
GlitterMedlem sedan juli 2003442 inlägg
Jag kör SQL 2000 server
men jag skall hämta ut alla datum som är större än 2004-05-19
i mitt ex så skrev jag la lite knasigt men det kan vara fler än ett datum...
LarsGMedlem sedan dec. 200012 465 inlägg
Jag fattar ingenting. Kan du exemplifiera med datainnehåll och förväntat resultat?
GlitterMedlem sedan juli 2003442 inlägg
Jag vill bara veta om man kan köra en dynamisk WHERE sats:
om datum är imellan '2004-05-17' och '2004-05-20' så vill jag att datum skall vara större än 2004-05-18
ungefär såhär:
bla bla
WHERE
IF datum BEETWEN '2004-05-17' AND '2004-05-20' THEN
Datum > '2004-05-18'
END
inputen är oviktig...
det är funktionen jag är ute efter
LarsGMedlem sedan dec. 200012 465 inlägg
Jag förstår inte vad som skulle vara dynamiskt. Så vitt jag kan se säger du bara att du inte vill ha värden där datum är 17/5 eller 18/5 dvs
where datum not in ('2004-05-17','2004-05-18')
GlitterMedlem sedan juli 2003442 inlägg
om collumen uppfyller vissa kriterier då skall en where sats skapas
SELECT * FROM tabell
IF datum = '2004-05-19' THEN
where datum = '2004-05-20' AND id = '1'
ELSE
where id = '1'
END
ORDER BY collumn
Det verkar inte som det går att ifa efter "FROM tabell" och case verkar inte heller fungera om jag inte gör fel...
kanske dåligt exempel med datum ?
@ndersMedlem sedan juni 200026 914 inlägg
Jag kan inte för mitt liv förstå vad du är ute efter. Strunta i SQL och försök beskriva vad du vill ha istället.
GlitterMedlem sedan juli 2003442 inlägg
okey tänk en if sats i mitten av en where
om en collumn uppfyller ett kriteria i detta fallet 2004-05-19 så skall ett annat kriteria upfyllas 2004-05-20 och inte det andra som man kollade med altså 2004-05-19
altså
if bla = 'aa' then
aaaa = 'cc'
end
hoppas ni förstår
@ndersMedlem sedan juni 200026 914 inlägg
WHERE (villkor1 and villkor2) OR villkor3
Eller :q
GlitterMedlem sedan juli 2003442 inlägg
om villkor 1 & 2 uppfylls så skall villkor 3 uppfyllas i frågan men villkor 1 & 2 skall inte påverka resultatet