Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
noget i stil med: SELECT SUM(etellerandet) FROM tabel1 WHERE( (MIN(værdi1, værdi2)) / (MAX(værdi1, værdi2)) > 10 ) Dvs jeg skal tage den mindste af 2 værdier og dividere med den største, og det resultat skal med i min SUM fra den ydre SQL.
problemet er at værdi1 kommer fra tabellen mens værdi 2 er en værdi fra min app. Dvs den er indkodet i SQL strengen dynamisk.
Nu skriver du ikke noget hvad det er for en 'APP' du har, men i Oracle ville en PL/SQL-'applikation' se ud som:
CREATE OR REPLACE FUNCTION xxx (pParameter NUMBER) RETURN NUMBER IS vResult NUMBER; BEGIN SELECT SUM ((LEAST (comm, pParameter)) / (GREATEST (comm, pParameter))) INTO vResult FROM emp WHERE ((LEAST (sal, pParameter)) / (GREATEST (sal, pParameter)) <1); RETURN vResult; END; /
WHERE (X/felt2 > 10 AND felt1 >= X AND felt2 >= Y) OR (X/Y > 10 AND felt1 >= X AND felt2 < Y) OR (felt1/felt2 > 10 AND felt1 < X AND felt2 >= Y) OR (felt1/Y AND felt1 < X AND felt2 < Y)
Ah jeg glemte denne tråd. Jeg løste problemet ved at lade programmet håndtere dataen. Der kom yderligere komplikatione til, således at jeg ikke tror det er muligt at lave det hele i en sql alligevel.
Derud over skulle vi kunne skifte den funktionalitet der var tale om her. Og det var nemmere at udskifte en funktion i koden end sql'en.
Men det ser uddmielbart snedigt nok ud med at dele den op i 4 OR's med kriterierne.
Jeg synes i skal dele de points, da jeg ikke kommer til at bruge det og i har brugt energi på det.
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.