我有两个表,tbl_customers和tbl_transactions,它们的字段如下:

**tbl_customer:**

c_id  |  c_name  |  age  |  Slab  |  gender  |  occupation  |  married  |  priority  |  ratings  |  contact  |  email  |  dob  |  anniversary

**tbl_transaction**


t_id  |  c_id  |  d_id  |  f_id  |  date_time  |  bill  |  member


表tbl_transaction是一个全局表,其中包含所有部门的事务,以d_id区分。

现在,我想运行一个查询,以获取c_id,总访问量(意味着tbl_transaction中没有c_id的行),总收入(意味着特定c_id的SUM(bill)的总和)以及它们在tbl_customer中的优先级和等级。

我正在尝试的查询是:

Select c_id,
COUNT(cid) as tot_visit,
SUM(bill) as tot_revenue, priority, ratings
From tbl_customer c
inner join tbl_transaction t on c.c_id=t.c_id
Where $r_id='r1' AND $c_id='".$cid."'
group by c_id


因此,基本上我想在客户表中显示每个客户的总访问量和收入,但不确定哪种方法正确。

任何帮助,将不胜感激。


这是我在SQL Engine中遇到的错误

最佳答案

根据您的错误,两个表中的字段在表中都具有相同的名称,您需要为字段指定表别名,同样,当您仅对一个组进行过滤时,由于您正在使用,因此无需使用group by单个组的AND c.c_id='".$cid."'

Select c.c_id,
COUNT(c.cid) as tot_visit,
SUM(t.bill) as tot_revenue, c.priority, c.ratings
From tbl_customer c
inner join tbl_transaction t on c.c_id=t.c_id
Where $r_id='r1' AND c.c_id='".$cid."'
group by c.c_id

10-04 11:27