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

Brugerhjælp og support til databaser i LibreOffice Base

Redaktør: Lodahl

Besvar
SnowmanDK
Indlæg: 23
Tilmeldt: 16. jun 2009 12:16
Geografisk sted: Hammel

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

Indlæg af SnowmanDK » 8. apr 2010 21:45

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:

Kode: Vælg alt

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?
Senest rettet af SnowmanDK 6. maj 2010 15:02, rettet i alt 1 gang.

SnowmanDK
Indlæg: 23
Tilmeldt: 16. jun 2009 12:16
Geografisk sted: Hammel

Indlæg af SnowmanDK » 13. apr 2010 15:49

Problemet er løst.
Vi oprettede en "oversættertabel" der havde 2 kolonner:

Kode: Vælg alt

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:

Besvar

Hvem er online

Brugere der viser dette forum: Ingen og 1 gæst