您好我有一个mysql和php用于读取数据的数据库,我有一个名为payment的表,其中插入付款例程,使客户然后是三个表“付款,例程和客户”,现在的问题是我想要的使用例程id“3”来加载客户的数量,我得到了解决但是一个细节逃脱了我,我需要客户端ID在柜台上不一样,因此在车辙时不能为同一个客户计算两次你有两笔例行公事。
我的陈述是:
select r.name_routine, count(p.id_routine)
from payments p,routines r,customers c
where p.id_client=c.id_client
and p.id_routine=r.id_routine
and p.id_routine='3'
数据集,西班牙语:
id_pago monto activo fecha_pago fecha_vencimiento observacion id_cliente id_rutina id_oferta
17 300 1 2016-02-24 2016-03-24 Ninguna 11 3 NULL
13 450 1 2016-02-05 2016-07-05 Ninguna 8 NULL 8
16 270 1 2016-02-05 2016-03-05 Ninguna 7 5 NULL
11 490 1 2016-02-04 2016-04-04 Ninguna 8 NULL 5
15 300 0 2016-02-04 2015-03-04 Ninguna 11 3 NULL
9 330 1 2016-02-03 2016-03-03 Ninguna 11 10 NULL
12 400 1 2016-02-03 2016-05-03 Ninguna 10 NULL 7
10 500 1 2016-02-02 2016-06-02 Ninguna 10 NULL 4
14 420 1 2016-02-02 2016-05-02 Ninguna 8 NULL 9
5 250 0 2016-01-18 2016-02-18 Ninguna 5 7 NULL
8 320 0 2016-01-05 2016-02-05 Ninguna 9 9 NULL
7 250 0 2016-01-03 2016-02-03 Ninguna 7 7 NULL
6 300 0 2016-01-02 2016-02-02 Ninguna 6 6 NULL
2 520 1 2015-10-18 2016-03-18 Ninguna 2 NULL 2
3 290 0 2015-10-18 2015-11-18 Ninguna 3 4 NULL
4 550 0 2015-10-18 2016-01-18 Ninguna 4 NULL 3
在此表中,您可以看到例程“3”被同一个客户使用了2次(id_client 11),然后我的查询应该返回例程使用1次而不是2次,这就是我想要告诉所有的常规“3”的客户
尝试使用distinct但返回相同的结果,你怎么能这样做?
答案 0 :(得分:0)
这应该有效
http_port 3128
cache_peer 2001:XXXX:XXX:XX:XXX:XXXX:XXXX:66bc parent 3128 0 no-query no-digest default
never_direct allow all
http_access allow all
答案 1 :(得分:0)
这应该有效:
select r.name_routine, count(distinct p.id_cliente)
from payments p,routines r,customers c
where p.id_client=c.id_client
and p.id_routine=r.id_routine
and p.id_routine='3'