2013-05-05 52 views
0

根据给定的日期范围,我需要一些帮助来统计和分组一些MySql表记录。 表strcutre是这样的:选择并组化MySql表

enter image description here

事先,谢谢你的帮助

+0

我需要一些帮助来理解你的问题。 – samayo 2013-05-05 17:07:13

+0

对不起,我的英文不太好。我有一个MySql表(顶层结构),我需要做一个查询,所以我可以按日期分组,按照日期排序的票数总和。每个记录都是一张票,希望你能理解。 – CaribeSoft 2013-05-05 17:11:15

+0

那么,用简单的英语告诉我,你在努力计算什么 – samayo 2013-05-05 17:12:10

回答

2

这768,16给你,你需要的结果:

SELECT 
    d1.dt, 
    COUNT(DISTINCT t1.recid) AS departures, 
    COUNT(DISTINCT t2.recid) AS returns, 
    COUNT(DISTINCT t1.recid) + COUNT(DISTINCT t2.recid) AS total 
FROM (SELECT departure_date AS dt FROM yourtable 
     UNION SELECT return_date FROM yourtable) d1 
    LEFT JOIN yourtable t1 ON d1.dt = t1.departure_date 
    LEFT JOIN yourtable t2 ON d1.dt = t2.return_date 
GROUP BY 
    d1.dt 

第一个子查询将返回所有日期,不重复,出现在您的表格(离开和返回)。

我然后尝试使用LEFT JOIN将每个日期加入到出发日期。然后,我计算DISTINCT t1.recid使联接成功..

然后我试图使用LEFT JOIN将每个日期加入到返回日期。总数是两个计数的总和。

小提琴是here

+0

嘿,伙计,非常感谢你,它适合我!如何快速地发布你的解释并把榜样,你的石头! – CaribeSoft 2013-05-06 06:50:17