J'ai quelque chose comme ensemble de données,Groupe par SQLite sur un sous-ensemble d'un ensemble basé sur les éléments d'un autre sous-ensemble de l'ensemble
A | B | C | D | E
-----------------------------------------------
1 | Carrot | <null> | a | 111
2 | Carrot | <null> | b | 222
3 | Carrot | zzz | c | 333
4 | Banana | <null> | a | 444
5 | Banana | <null> | b | 555
6 | Banana | <null> | c | 666
7 | Grape | <null> | a | 777
8 | Grape | <null> | b | 888
9 | Grape | zzz | c | 999
10 | Carrot | <null> | a | 000
11 | Carrot | <null> | b | AAA
12 | Carrot | zzz | c | BBB
Maintenant ce que je suis en train de faire est de résumer les valeurs de E où D a une valeur de b, mais seulement pour les éléments de B où C a une valeur de zzz. Donc, dans l'exemple ci-dessus, je regarde les valeurs 222, 888 et AAA, mais je ne m'intéresse pas à 555.
Je peux les additionner par groupe et somme en fonction de la valeur B pas de problème, mais que Je voudrais faire est somme basée sur C.
Mon code ressemble à ceci
select B,
(select sum(E) as duty_payable
from table table_alias_b
where D = "b"
and table_alias_b.B = table_alias_a.B)
from table table_alias_a
where table_alias_b.B in (select B
from table
where (C = 'zzz'))
group by B
Ou quelque chose comme ça (il y a trois tables dans les jointures en cours aussi ...)
Est-ce que c'est compréhensible?