select * from table1
where
(
(
--group1
amount_1 > 0
or
amount_2 > 0
or
amount_3 > 0
)
or
(
--group2
amount_4 > 0
or
amount_5 > 0
or
amount_6 > 0
)
)
or
amount_7 > 0
;
Выше предварительное заявление sql.Мне нужно добавить функцию, в которой можно использовать как минимум три суммы из обеих групп или более, и как минимум одно количество каждой группы (group1 и group2).
Пример 1: если значения group1 1-3 меньше 0затем используйте сумму_7.
Пример 2: если группа1 сумма_1 больше нуля, а группа2 сумма_5 и сумма_6 больше нуля, тогда используйте количество_1, количество_5, количество_6.
Должен ли я использовать некоторую структуру дел и дать 1 и 0, когда сумма больше 0 или как?
В этом примере суммы являются предварительно суммированными продажами, больше нет необходимости суммировать.
Ответ - это что-то вроде этого, все еще тестирование ....
select * from table1
where
(
(
--group1
case when
(case when amount_1 > 0 then 1 else 0 end)
+
(case when amount_2 > 0 then 1 else 0 end)
+
(case when amount_3 > 0 then 1 else 0 end)
> 0
then
(
--group1
amount_1 > 0
or
amount_2 > 0
or
amount_3 > 0
)
else null end
)
or
(
--group2
(case when amount_4 > 0 then 1 else 0 end)
+
(case when amount_5 > 0 then 1 else 0 end)
+
(case when amount_6 > 0 then 1 else 0 end)
> 0
then
(
--group2
amount_4 > 0
or
amount_5 > 0
or
amount_6 > 0
)
else null end
)
)
or
amount_7 > 0
;
или более простое решение:
select * from table1
where
(
(
--group1
amount_1
+
amount_2
+
amount_3
>0
)
and
(
--group2
amount_4
+
amount_5
+
amount_6
>0
)
)
or
amount_7 > 0
;