[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: Tue Jun 16, 2009 11:16
Location: Hammel

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

Post by SnowmanDK » Thu Apr 08, 2010 20: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:

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 Thu May 06, 2010 14:02, edited 1 time in total.

SnowmanDK
Posts: 23
Joined: Tue Jun 16, 2009 11:16
Location: Hammel

Post by SnowmanDK » Tue Apr 13, 2010 14:49

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

Who is online

Users browsing this forum: No registered users and 2 guests