在MySQL中根据季度日期筛选出良好的公司结果

在MySQL中根据季度日期筛选出良好的公司结果,mysql,sql,Mysql,Sql,我有一个“QuarteryReport”表,其中有多个公司的季度利润数据,下一栏是“CompanyName”、“QuarterEndDate”和“profit” 我正在尝试构造一个MySQL查询,以查看哪家公司的利润表现在每一个连续季度(第4季度>第3季度>第2季度>第1季度)中都会有所增长,且日期范围为1年4个季度 在上述示例中,只有公司“A”将满足此要求,并应作为查询结果返回 目前我只能使用follow MySQL query为Q4>0、Q3>0和Q2>0构建查询: 从选择q.Company

我有一个“QuarteryReport”表,其中有多个公司的季度利润数据,下一栏是“CompanyName”、“QuarterEndDate”和“profit”

我正在尝试构造一个MySQL查询,以查看哪家公司的利润表现在每一个连续季度(第4季度>第3季度>第2季度>第1季度)中都会有所增长,且日期范围为1年4个季度

在上述示例中,只有公司“A”将满足此要求,并应作为查询结果返回

目前我只能使用follow MySQL query为Q4>0、Q3>0和Q2>0构建查询:

从选择q.CompanyName、q.QuarterEndDate、q.Profit FROM`quarteryReport`q a中选择* 其中a.QuarterEndDate>='2013-06-30'和 a、 季度结束日期<'2014-06-30'和 a、 中的CompanyName从'QuarterlyReport'中选择CompanyName,其中 a、 中的公司名称从'QuarteryReport'中选择Q4.CompanyName作为第四季度,其中Q4.QuarterEndDate='2014-03-31'和Q4.Profit>'0'和 a、 中的CompanyName从'QuarteryReport'中选择Q3.CompanyName作为第三季度,其中Q3.QuarterEndDate='2013-12-31'和Q3.Profit>'0'和 a、 中的CompanyName从'QuarteryReport'中选择Q2.CompanyName作为Q2,其中Q2.QuarterEndDate='2013-09-30'和Q2.Profit>'0'和 a、 选择“QuarteryReport”中的Q1.CompanyName作为Q1,其中Q1.QuarterEndDate='2013-06-30'和Q1.Profit>'0' 按a.CompanyName分组按a.CompanyName排序ASC 有人能就如何归档我的目标查询提出一些建议吗?

试试:

select q.*
from quarterlyreport q
join
    (
    select      companyname
    from        quarterlyreport
    where       quarterenddate between '2013-06-30' and '2014-06-30'
    group by    companyname
    having      sum(case when quarter(quarterenddate) = 1 then profit else 0 end)
              > sum(case when quarter(quarterenddate) = 4 then profit else 0 end)
            and sum(case when quarter(quarterenddate) = 4 then profit else 0 end)
              > sum(case when quarter(quarterenddate) = 3 then profit else 0 end)
            and sum(case when quarter(quarterenddate) = 3 then profit else 0 end)
              > sum(case when quarter(quarterenddate) = 2 then profit else 0 end)
    ) v
    on q.companyname = v.companyname
你能行

选择* 从…起 选择公司名称, MAXCASE当QuarterEndDate=2时,则利润结束q1, 最大情况下,当QuarterEndDate=3时,则利润结束q2, 最大情况下,当QuarterEndDate=4时,利润结束第三季度, 当QuarterEndDate=1时的最大情况,然后是第四季度末的利润 来自QuarterlyReport 其中QuarterEndDate>='2013-06-30'和QuarterEndDate<'2014-06-30' 按公司名称分组 Q 其中q1 | COMPANYNAME | Q1 | Q2 | Q3 | Q4 | |-------------|-------|-------|-------|--------| | A | 29878 | 33712 | 60764 | 260734 |
这是一个演示

这是一个非常有效的查询命令,非常容易修改以适应其他过滤要求! | COMPANYNAME | Q1 | Q2 | Q3 | Q4 | |-------------|-------|-------|-------|--------| | A | 29878 | 33712 | 60764 | 260734 |