我有两个表,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