计算Mysql

时间:2016-02-25 15:40:40

标签: mysql

您好我有一个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但返回相同的结果,你怎么能这样做?

2 个答案:

答案 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'