Page 1 of 1

[LØST!] Addere visse felter (via forespørgsel?) ud fra værdi

Posted: 8. Apr 2010 21:45
by SnowmanDK
Jeg er rendt ind i et problem.

Min DB kører på en MySQL server.
Jeg har en tabel med 12 værdier.
Hver værdi kan være ENTEN <blank>, 0, 1, 2, 3, 4 eller 9. (de indsættes via pulldown menuer i formular).
Jeg skal bruge en udregning af de værdier der indeholder 0, 1, 2, 3 og 4. Alle andre værdier skal ignoreres.

Værdierne læser jeg fra en formular's felter via en forespørgsel (SELECT), og jeg kan også godt få den til at lægge alle værdier sammen og smide dem i resultatfeltet.
MEN, hvis jeg bruger "IN(0,1,2,3,4)" og værdien ikke er en af dem, skipper den HELE regnestykket.

Min foreløbige kode ser nogenlunde sådan ud:

Code: Select all

SELECT `Data1ATest` + `Data1ATest2` + `Data1ATest3` AS `Data1ATotal`, 
`Data2ATest` + `Data2ATest2` + `Data2ATest3` AS `Data2ATotal`, 
`Data1BTest4` + `Data1BTest5` AS `Data1BTotal`, 
`Data2BTest4` + `Data2BTest5` AS `Data2BTotal`, 
`Data1CTest6` + `Data1CTest7` + `Data1CBTest8` AS `Data1CTotal`, 
`Data2CTest6` + `Data2CTest7` + `Data2CBTest8` AS `Data2CTotal`, 
`Data1DTest9` + `Data1DTest10` + `Data1DTest11` + `Data1DTest12` AS `Data1DTotal`, 
`Data2DTest9` + `Data2DTest10` + `Data2DTest11` + `Data2DTest12` AS `Data2DTotal` 
FROM `database`.`tblTabel` AS `tblTabel` 
WHERE `Data1ATest` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1ATest2` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1ATest3` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2ATest` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2ATest2` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2ATest3` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1BTest4` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1BTest5` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2BTest4` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2BTest5` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1CTest6` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1CTest7` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1CBTest8` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2CTest6` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2CTest7` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2CBTest8` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1DTest9` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1DTest10` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1DTest11` IN ( 0, 1, 2, 3, 4 ) 
AND `Data1DTest12` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2DTest9` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2DTest10` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2DTest11` IN ( 0, 1, 2, 3, 4 ) 
AND `Data2DTest12` IN ( 0, 1, 2, 3, 4 )
Håber jeg har gjort mig forståelig :)

Nogen der kan komme med et foreslag?

Posted: 13. Apr 2010 15:49
by SnowmanDK
Problemet er løst.
Vi oprettede en "oversættertabel" der havde 2 kolonner:

Code: Select all

0|0
1|1
2|2
3|3
4|4
9|0
Derefter kørte vi en forespørgsel ved hjælp af den tabel, og til sidst endnu en forespørgsel på den første forespørgsel :shock:
Måske ikke en helt "ren" måde at gøre det på, men det virker :wink: