Query所需的SQL代码

时间:2010-01-19 22:26:16

标签: sql

我需要SQL代码来处理我需要在Access中执行的查询。我有一个包含多个字段的表,但我只需要2个字段进行查询。 1是日期字段。让我们称之为一个DateField。另一个是包含文本的字段,让我们调用点亮的TextField。我需要一个返回以下内容的查询:

  1. DateField的COUNT(即无论值多少,都有多少)
  2. TextField的COUNT WHERE其值=“ThisText”
  3. TextField的COUNT WHERE其值=“ThatText”
  4. 结果GROUP BY Year
  5. 同样的查询(将是一个单独的Q),但结果为GROUP BY Month
  6. 非常感谢您提供的所有精彩帮助。

3 个答案:

答案 0 :(得分:2)

我相信每个查询只能为一个给定的聚合函数选择一次。也就是说,您无法在单个查询中请求COUNT两个不同的字段。 Here's the reference用于JET SQL中的count函数。在一些WHERE子句下,您可以计算分组结果集中某个字段的非NULL值的数量。

答案 1 :(得分:0)

怎么样:

SELECT 
   Year
   ,COUNT(DISTINCT DateField) AS NumDateFields
   ,COUNT(CASE WHEN TextField = 'ThisText' THEN 1 END) AS ThisTextCount
   ,COUNT(CASE WHEN TextField = 'ThatText' THEN 1 END) AS ThisTextCount
GROUP BY Year;

或...... GROUP BY Month

答案 2 :(得分:0)

SELECT YEAR/MONTH(DateField), COUNT(DateField), 
       SUM(IIF(TextField='ThisText', 1, 0)),
       SUM(IIF(TextField='ThatText', 1, 0))
FROM MyTable
GROUP BY YEAR/MONTH(DateField)