mysqli select query для выбора некоторых таблиц, которые могут не существовать, используя join

В Android 3.0+ предпочтительный подход для меню опций (меню перелива в панели действий) не отображает значки. Если у вас есть android:targetSdkVersion="11" или выше, значки никогда не будут отображаться в меню на Android 3.0+. Значки будут отображаться, если вы создадите элемент меню параметров, который будет кнопкой панели инструментов, и значки будут отображаться на устройствах Android 1.x / 2.x.

0
задан Amani 18 January 2019 в 13:02
поделиться

1 ответ

Вот очень упрощенный пример, в котором я определяю количество ожидаемых платежей и количество месяцев, в течение которых был произведен платеж - если не совпадает, то мне интересно

drop table if exists u,t;
create table u (id int,subs int, dt date);
create table t (uid int,dt date);
insert into u values (1,1,'2019-01-01'),(2,1,'2018-11-01'),(3,1,'2018-09-01');
insert into t values
(1,'2019-01-01'),
(2,'2018-11-11'),(2,'2018-11-13'),(2,'2019-01-01');



select id,
        ((year(now()) * 12 + month(Now())) -  (year(u.dt) * 12 + month(u.dt))) + 1 numexpected,
        coalesce(s.paidup,0) paidup
from u
left join
(select t.uid,count(distinct year(t.dt),month(t.dt)) paidup
from t
group by t.uid) s on s.uid = u.id
where ((year(now()) * 12 + month(Now())) -  (year(u.dt) * 12 + month(u.dt))) + 1 <> coalesce(s.paidup,0);

+------+-------------+--------+
| id   | numexpected | paidup |
+------+-------------+--------+
|    2 |           3 |      2 |
|    3 |           5 |      0 |
+------+-------------+--------+
2 rows in set (0.00 sec)

Обратите внимание на ожидание Платеж, который должен производиться каждый месяц, кажется немного упрощенным - как насчет предоплат и поздних платежей? Например, UID 2 сделал 3 платежа, но 2 были в том же месяце.

0
ответ дан P.Salmon 18 January 2019 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: