按日期范围访问查询限制组

时间:2017-09-19 18:31:05

标签: sql ms-access

我在访问SQL查询时遇到问题(我熟悉MS SQL)。我在尝试将查询限制为过去一年中的日期时遇到错误。 DataTable按每个城市日期的销售额进行组织。

    SELECT A.City, A.Region, Sum(A.Sales) AS TotalRev
    FROM DataTable AS A
    WHERE A.Date<=DateAdd("dd",-365,Date())
    GROUP BY A.Month, A.City, A.Region

我收到的错误是&#34;无效的程序调用&#34;

1 个答案:

答案 0 :(得分:2)

也许原因是dd不是MS Access中的有效间隔(这里是documentation)。试试这个:

SELECT A.City, A.Region, Sum(A.Sales) AS TotalRev
FROM DataTable AS A
WHERE A.Date <= DateAdd("d", -365, Date())
GROUP BY A.Month, A.City, A.Region;

那就是说,我不明白为什么A.Month中有GROUP BYSELECT而不是SELECT A.City, A.Region, Sum(A.Sales) AS TotalRev FROM DataTable AS A WHERE A.Date >= DateAdd("yyyy", -1, Date()) GROUP BY A.City, A.Region; 。此外,此查询与您想要的相反。我希望更像是:

import java.util.Scanner;
import java.io.*;
import java.io.PrintWriter;

public class comparison_rylan_howard {
    public static void main(String[] args) throws IOException {
        Scanner reader = new Scanner(new
                File("H:\\NetBeansProjects\\Unit1\\comparison.txt"));
        try (PrintWriter writer = new PrintWriter("Results.txt")) {

            while (reader.hasNext()) {
                double first = reader.nextDouble();
                double second = reader.nextDouble();
                if (first <= -1 || second <= -1) {
                    writer.println("Error");
                }
                if (first > second) {
                    writer.println(">");
                    writer.println(" ");
                }
                if (first < second) {
                    writer.println("<");
                    writer.println(" ");
                } else {
                    writer.println("=");
                    writer.println(" ");
                }
            }
        }
    }
}