2016-06-08 74 views
0

试图解决以下问题,并认为我已经尝试了COUNT GROUP的每个组合,并且在哪里订购我可以想到并且没有运气。FileMaker SQL根据计算得到的行数计算MonthYear

有一个表,这些列:

Date  MonthYear  JobStatus  JobType 

最终的输出,我需要根据上面的表格列:
我在寻找的结果是每个MonthYear/JobStatus GROUP行数,JobType是“X”,日期在两个日期之间。哦,它需要由Date ASC订购。

我有什么企图迄今:
所以我试过各种 - 但在我看来逻辑的做法是:

SELECT MonthYear, JobStatus, Count(*) 
FROM Jobs 
WHERE Date > '5/1/15' AND Date < '9/31/15' AND JobType = 'X' 
GROUP BY MonthYear, JobStatus 
ORDER BY Date ASC 

预期输出:

May 15|Ready for Submission|1 
May 15|Submitted to b|1 
May 15|Approved|10 
Jun 15|Ready for Submission|1 
Jun 15|Approved|46 
Jun 15|Submitted to b|11 
Jun 15|Submitted to a|1 
Jul 15|Submitted to a|1 
Jul 15|Submitted to b|13 
Aug 15|Submitted to b|36 
Aug 15|Chasing Paperwork|1 
Aug 15|Submitted to a|2 
Aug 15|Approved|2 
Sep 15|Chasing Paperwork|1 
Sep 15|Submitted to a|2 

但这只是导致错误。任何帮助非常感谢 - 在这最后一天半了!

+0

什么是你所得到的错误,我没有看到与您的查询 – TheGameiswar

+0

好当的FileMaker计算它,我只是得到任何问题“?” –

+0

我现在有错误描述:SELECT列表和HAVING子句中的所有非聚合列引用都必须位于GROUP BY子句中。 –

回答

0

感谢TheGameiswar我查找了导致我找到隐藏的sql.debug函数的错误描述。快速谷歌的错误代码和第一个结果描述了你不能在同一个查询中使用GROUP和ORDER。猜猜GROUP做排序。至少在FileMaker中,它拥有自己独特的SQL实现。无法对任何其他版本说话。使作品产生的查询是:

SELECT ScheduledMonthYear, JobStatus, COUNT(*) 
FROM Jobs 
WHERE ScheduledDate > ? AND ScheduledDate < ? AND JobType = ? 
GROUP BY ScheduledMonthYear, JobStatus 
+0

我现在唯一的问题是,结果列表按月份名称按字母顺序排列..这仍然是一个问题。 –

+0

现在,因为我没有看到有任何简单的方法可以在SQL中执行此操作,所以将MonthYear更改为20165而不是5月16日,这可以正确排序。 –