是否有一个MySQL语句,或者需要多个语句?
我有一张有MLSNumber,ListingContractDate,CloseDate的桌子 我想总结一下从本月开始到2000年1月的本月活动 我有这张报表,它按月汇总了合同日期是否有一个MySQL语句,或者需要多个语句?,mysql,Mysql,我有一张有MLSNumber,ListingContractDate,CloseDate的桌子 我想总结一下从本月开始到2000年1月的本月活动 我有这张报表,它按月汇总了合同日期 SELECT COUNT(MLSNumber) AS NewListings, DATE_FORMAT(ListingContractDate,'%M %Y') FROM Listings WHERE Neighbourhood = 'Beachside' AND ListingContractDate >
SELECT COUNT(MLSNumber) AS NewListings, DATE_FORMAT(ListingContractDate,'%M %Y')
FROM Listings
WHERE Neighbourhood = 'Beachside'
AND ListingContractDate >= '2000-01-01'
GROUP BY YEAR(ListingContractDate), MONTH(ListingContractDate)
ORDER BY ListingContractDate DESC
此语句的两个问题是,如果在该月跳过的特定月份中未找到任何内容,则我需要返回0,这样就不会缺少任何月份,我不知道如何在CloseDate字段中获得相同的计数,或者我是否只需要运行第二次查询,并使用PHP将两个结果按月和按年进行匹配。一个非常有用的项目是一个只包含一组整数的计数表。我使用了一个脚本来生成这样一个表 通过该表,我现在可以将与时间相关的数据左键连接到该表,如下所示:
set @startdt := '2000-01-01';
SELECT COUNT(MLSNumber) AS NewListings, DATE_FORMAT(T.Mnth,'%M %Y')
FROM (
select
tally.id
, date_add( @startdt, INTERVAL (tally.id - 1) MONTH ) as Mnth
, date_add( @startdt, INTERVAL tally.id MONTH ) as NextMnth
from tally
where tally.id <= (
select period_diff(date_format(now(), '%Y%m'), date_format(@startdt, '%Y%m')) + 1
)
) t
LEFT JOIN Temp On Temp.ListingContractDate >= T.Mnth and Temp.ListingContractDate < T.NextMnth
GROUP BY YEAR(T.Mnth), MONTH(T.Mnth)
ORDER BY T.Mnth DESC
Logc
定义一个声明日期
使用以下公式计算从该日期到现在的月数:
周期_DIFF+1
从理货表中选择该数量的记录
创建期间开始和结束日期tally.Mnth和tally.NextMnth
使用左键将实际数据连接到理货表
Temp.ListingContractDate>=T.Mnth和Temp.ListingContractDate参见一个非常有用的项目是一个简单地由一组整数组成的计数表。我使用了一个脚本来生成这样一个表 通过该表,我现在可以将与时间相关的数据左键连接到该表,如下所示:
set @startdt := '2000-01-01';
SELECT COUNT(MLSNumber) AS NewListings, DATE_FORMAT(T.Mnth,'%M %Y')
FROM (
select
tally.id
, date_add( @startdt, INTERVAL (tally.id - 1) MONTH ) as Mnth
, date_add( @startdt, INTERVAL tally.id MONTH ) as NextMnth
from tally
where tally.id <= (
select period_diff(date_format(now(), '%Y%m'), date_format(@startdt, '%Y%m')) + 1
)
) t
LEFT JOIN Temp On Temp.ListingContractDate >= T.Mnth and Temp.ListingContractDate < T.NextMnth
GROUP BY YEAR(T.Mnth), MONTH(T.Mnth)
ORDER BY T.Mnth DESC
Logc
定义一个声明日期
使用以下公式计算从该日期到现在的月数:
周期_DIFF+1
从理货表中选择该数量的记录
创建期间开始和结束日期tally.Mnth和tally.NextMnth
使用左键将实际数据连接到理货表
Temp.ListingContractDate>=T.Mnth和Temp.ListingContractDate