I dit eksempel har du trukket dem fra hinanden, hvis du har flere test end 2, hvad skal så trækkes fra hvad?
Det er lidt forskellige i forskellige situationer.
Men det er kune simple operationer som at lægge til hinanden og trække fra.
Har lavet denne query som virker, men er det den smarteste måde?
SELECT TOPIC_ID,
(SELECT result
FROM test1 w
WHERE w.topic_id = dbo.TEST1.topic_id AND test_id = 1) -
(SELECT result
FROM test1 r
WHERE r.topic_id = dbo.TEST1.topic_id AND test_id = 2) AS Expr1
FROM dbo.TEST1
GROUP BY TOPIC_ID
SELECT TopicID, Min(Results), Max(Results) FROM Test1 GROUP BY TopicID
Overstående er ikke testet ... men det burde tage den test med flest og mindst point ... og ja, du kan jo også trække den ene fra den anden ...
SELECT TopicID, max(Results) - min(Results) as [diff] FROM Test1 GROUP BY TopicID
mvh
Hvis du for hvert topic altid har precis to tests med test_id 1 og 2 og det altid er 2erne der skal traekkes fra 1erne saa ville det vaere simpler at vise result fra test_id2 negativt og saa tage summen saaledes:
SELECT topic_id, sum(result) FROM jonasmp GROUP BY topic_id;
Hvis du gerne vil bevare vaerdierne som de er kunne du midlertidigt saette 2erne negativt, tage summen, og saette 2erne tilbage til posetivt igen. Saaledes:
UPDATE jonasmp SET result = -result WHERE test_id = 2;
SELECT topic_id, sum(result) FROM jonasmp GROUP BY topic_id;
UPDATE jonasmp SET result = -result WHERE test_id = 2;
Jeg saa ikke at buzzzz havde lavet et indlaeg mens jeg arbejdede med mit. Jeg har ikke studeret det, men buzzzz synes at forstaa at det mindste resultat skal traekkes fra det stoerste hvorimod jeg forstod fra spoergsmaalet at 2erne skal traekkes fra 1erne, hvilket saa naturligvis kan levere en negativ sum. Hvad siger Jonasmp?
Og saa en kommentar: Jeg havde for test lavet en tabel kaldet jonasmp i stedet for test1, men det skal du naturligvis lave om til dit eget tabelnavn.
Jeg så bare:
TOPIC_ID | DIFFRESULT
___________________
4 | 2.1
6 | 2.0
Og deraf mit eks.
Men ja, skal det være på den anden måde, så skal TestID også med ud ... og så bliver man jo nød til at lave lidt join eller måske CTE.
Postede kun min da jeg synes det var en sjov løsning på et problem :-)
mvh
jonasmp, fik du mit indlaeg? Jeg er spaendt paa din reaktion. Jeg tillader mig at oprette dette som svar for at lette lukning hvis du skulle finde at mig indlaeg har vaeret til hjaelp.
Gør det vel som sådan ikke lettere ... så kunne du jo ligeså godt have smidt dit første som svar :-)
Men det kræver nok lidt mere info fra ham ... før svar kan gives ...
Man kan jo også bare tage ABS af en værdi, så vil den jo også være positiv ...
mvh
jonasmp, jeg proever lige en gang til. Du oprettede dette spoergsmaal for et halvt aar siden, men der har ikke vaeret nogen aktivitet paa det siden to dage efter oprettelsen. Det er uden tvivl ikke laengere aktuelt. Kan jeg bede dig lukke det, for god ordens skyld og saa det ikke laengere staar som aabent i min (og andres) liste af indlaeg. Hvad enten du oensker at afgive points eller du selv vil oprette et svar til at acceptere, afslut hvad du begyndte paa og luk spoergsmaalet. Please.