2010-04-22 3 views
3

Utilisation de MySQL 5 avec table « Abrechnung »requêtes SQL Count sur l'information colonne

id datum  title betrag wal jon al ben 
7 2010-02-08 Essen 1362  0 0 1 0 
8 2010-02-15 Essen 324  0 0 1 2 
9 2010-02-15 Essen 5732  0 0 1 2 
10 2010-02-15 Essen 3245  0 2 1 2 

Ce que je veux à la fin est la suivante: Chaque lignes « Betrag » est divisé par un numéro, puis ajouté au résultat final. Le nombre qui est divisé à travers est 4 - le montant de 2 dans la ligne actuelle.

Mon approche actuelle est la suivante:

SELECT SUM(betrag) AS "W->A" FROM abrechnung WHERE (wal = "0" and al = "1"); 

Ce sélectionne essentiellement les entrys que je veux avoir ajouté au résultat final. Résultat dans ce cas: 10663.

En fait, le résultat final sera:

1362/4 (no number 2 in that row for wal, jon, al or ben) 
+ 324/3 (there is one 2 in that row for ben) 
+ 5732/3 (same) 
+ 3245/2 (there are 2 2's in that row) 
----------- 
    3 981.66 

J'espère que cela est clair pour comprendre.

Merci.

Répondre

1
SELECT SUM(betrag/(
4-CASE WHEN wal = 2 THEN 1 ELSE 0 END 
    -CASE WHEN jon = 2 THEN 1 ELSE 0 END 
    -CASE WHEN al = 2 THEN 1 ELSE 0 END 
    -CASE WHEN ben = 2 THEN 1 ELSE 0 END 
)) 
AS "W->A" FROM abrechnung 
+0

C'est la syntaxe Sybase, je n'ai maintenant accès MySQL pour tester si cela fonctionne là aussi, mais il devrait – DVK

+0

vous remercier, mais cela ne couvre pas le cas il y a 2 2 dans une rangée – Acron

+0

I pense qu'il le fait, car il fait une soustraction pour chaque 2 .. son 4- (si wal = 2 puis 1 sinon 0) - (si jon = 2 puis 1 sinon 0) -usw ... – jpabluz