Как выбрать постоянных клиентов за определенный период?

190
18 июля 2021, 05:40

Есть вот такая конструкция

$orders_total_loyal = $this->db->getValue('
            select sum(t.s)
            from (
                select count(o.id_order) as s
                from ps_orders o
                where o.valid = 1
                and o.invoice_date >= "'.$this->period["from"].'"
                and o.invoice_date <= "'.$this->period["to"].'"
                group by id_customer
                having count(id_order) > 1
            ) as t
        ');

Но она выбирает только повторяющиеся за выбранный промежуток. Как правильно сделать, что бы выбрало постоянных клиентов которые были именно в этот промежуток? Сильно тапками не кидайте, я новый в этом всём.

Answer 1

Исходя из текста запроса, опубликованного Вами в вопросе, и Ваших комментариев к вопросу код

$orders_total_loyal = $this->db->getValue('
                select id_customer
                from ps_orders o
                where o.valid = 1
                and o.invoice_date >= "'.$this->period["from"].'"
                and o.invoice_date <= "'.$this->period["to"].'"
                group by id_customer
                having count(id_order) > 1
        ');

выберет ID пользователей, у которых больше одного заказа за указанный период.

Код

$orders_total_loyal = $this->db->getValue('
                select count(o.id_order) as s
                from ps_orders o
                where o.valid = 1
                and o.invoice_date >= "'.$this->period["from"].'"
                and o.invoice_date <= "'.$this->period["to"].'"
                and id_customer in (
                    select id_customer
                    from ps_orders o
                    where o.valid = 1
                    group by id_customer
                    having count(id_order) > 1)
        ');

выдаст количество заказов за указанный период, выполненных клиентами с количеством заказов больше 1.

READ ALSO
ListView: обновление данных сбивает ChekBox

ListView: обновление данных сбивает ChekBox

Есть ListView состоящий из CheckBoxПихаю в него ArrayList

237
Удаляется ли база данных после скачивания обновлений на андроид с Play Market?

Удаляется ли база данных после скачивания обновлений на андроид с Play Market?

Подскажите, удаляется ли база данных или вообще с ней что то происходит после принятия обновлений с плей маркета на андроиде? И какие вообще...

197
Scanner и мой пример

Scanner и мой пример

После Systemout

169
Java, сортировка списка строк в прямом и обратном порядке

Java, сортировка списка строк в прямом и обратном порядке

Ести список строк: "Иванов" "Иванкин" "Ивченко" "Лавриенко" "Лавочкин" "Абрамов" "Абдулов" "Акрин" "Циганов"

191