简体   繁体   English

mysql查询问题,每天在两个表中选择总记录

[英]mysql query issue to select total records per day in two tables

i want to get SUM/Total records each day in a month from two tables,when i run my query on single table,it works but then commulative is not working...like this is for first table which is ok. 我想在一个月中每天从两个表中获取每天的SUM /总计记录,当我在单个表上运行查询时,它可以工作,但随后的累积功能却无法工作...就像这样,对于第一个表就可以了。

select DATE_FORMAT(date(dateadded),'%m/%d/%Y') as dateadded, count(id) as tot_rent
from crm_rentals WHERE YEAR(dateadded) = YEAR(CURRENT_DATE)
AND MONTH(dateadded) = MONTH(CURRENT_DATE)
group by date(dateadded)

this is for second table which is also ok. 这是第二张桌子也可以。

select DATE_FORMAT(date(dateadded),'%m/%d/%Y') as dateadded, count(id) as tot_rent
from crm_sales WHERE YEAR(dateadded) = YEAR(CURRENT_DATE)
AND MONTH(dateadded) = MONTH(CURRENT_DATE)
group by date(dateadded)

Issue is when i want to find sum of each day of the result,it is not working properly..here is my final query 问题是当我想查找结果每一天的总和时,它不能正常工作..这是我的最终查询

select dateadded,count(tot_rent) as tot_rent
from ( select DATE_FORMAT(date(dateadded),'%m/%d/%Y') as dateadded, count(id) as tot_rent
from crm_rentals WHERE YEAR(dateadded) = YEAR(CURRENT_DATE)
AND MONTH(dateadded) = MONTH(CURRENT_DATE)
group by date(dateadded)
union
select DATE_FORMAT(date(dateadded),'%m/%d/%Y') as dateadded, count(id) as tot_rent
from crm_sales WHERE YEAR(dateadded) = YEAR(CURRENT_DATE)
AND MONTH(dateadded) = MONTH(CURRENT_DATE)
group by date(dateadded)) s group by date(dateadded)

table structure for crm_rentals(first table,date=Ymd) crm_rentals的表结构(第一个表,日期= Ymd)

id -----dateadded
15------2013-04-02
16------2013-04-03
17------2013-04-03

table 2 crm_sales 表2 crm_sales

id------dateadded
 7------2013-04-02

Result should be 结果应该是

dateadded-----tot_rent
04/02/2013 ----2
04/03/2013  ---2 //this line is not shown

first query gives 第一个查询给出

id -----dateadded
1------2013-04-02
2------2013-04-03

second query gives 第二个查询给出

id -----dateadded
1------2013-04-02

so union will give 所以工会会给

1------2013-04-02
2------2013-04-03
1------2013-04-02

its group will do 它的小组会做

2------2013-04-02
1------2013-04-03

correct approach would be 正确的做法是

15------2013-04-02
16------2013-04-03
17------2013-04-03

UNION 联盟

 7------2013-04-02

Then Group will give 然后小组会给

2------2013-04-02
2------2013-04-03

try this: 尝试这个:

select dateadded,count(tot_rent) as tot_rent
from ( select DATE_FORMAT(date(dateadded),'%m/%d/%Y') as dateadded, id as tot_rent
from crm_rentals WHERE YEAR(dateadded) = YEAR(CURRENT_DATE)
AND MONTH(dateadded) = MONTH(CURRENT_DATE)
union
select DATE_FORMAT(date(dateadded),'%m/%d/%Y') as dateadded, id as tot_rent
from crm_sales WHERE YEAR(dateadded) = YEAR(CURRENT_DATE)
AND MONTH(dateadded) = MONTH(CURRENT_DATE)
) s group by dateadded

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM