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

Brugerhjælp og support til databaser i LibreOffice Base

Moderator: Lodahl

Post Reply
SnowmanDK
Posts: 23
Joined: 16. Jun 2009 12:16
Location: Hammel

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

Post 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?
Last edited by SnowmanDK on 6. May 2010 15:02, edited 1 time in total.
SnowmanDK
Posts: 23
Joined: 16. Jun 2009 12:16
Location: Hammel

Post 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:
Post Reply