所以我正在尝试创建一个查询,它将返回学生从我们的食品柜中取出的食物的总重量(我在大学食品柜中工作),我能够得到它给我所有的总数我需要除了一些不同的学生进来之外。基本上,我需要它来给我一些不同的学生,而不是现在给我的交易数量。那里的任何人都知道如何解决它?目前的代码如下:
Student_ID
是我需要子查询的字段,如果我是正确的......
SELECT DISTINCTROW
Format$([Transaction Table].[Date],'mmmm yyyy') AS [Month],
Sum([Transaction Table].Weight) AS [Total Weight],
Count(*) AS [Total Transaction],
Count([Transaction Table].Student_ID) AS [Unique Customers]
FROM [Transaction Table]
GROUP BY
Format$([Transaction Table].[Date],'mmmm yyyy'),
Year([Transaction Table].[Date])*12+DatePart('m',[Transaction Table].[Date])-1;
答案 0 :(得分:0)
如果您只想要每个日期的不同学生人数,您可以使用以下内容:
SELECT Count(Student_ID) As StudentCount, ShortDate
FROM
(SELECT Student_ID, Format$([Date], "Short Date") As ShortDate
FROM [Transaction Table]
GROUP BY Student_ID, Format$([Date], "Short Date"))
GROUP BY ShortDate
然后你可以加入日期。
然而,在一个语句中执行它将很困难,因为Access不喜欢嵌套的子查询。
答案 1 :(得分:0)
我明白了!我的问题是我试图将所有月份字段链接在一起。我需要做的是创建两个查询,首先按月计算不同的客户,另一个查询以获得交易数量和每月的权重,然后编写最终查询以合并我需要的所有字段。固定代码如下:
交易计数查询:
textView.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.your_image, 0, 0);
textView.setCompoundDrawablePadding(10);
唯一客户计数查询:
SELECT DISTINCTROW
Format$([Transaction Table].[Date],'mm/yyyy') AS [Month],
Sum([Transaction Table].Weight) AS [Total Weight],
Count(*) AS [Total Transactions]
FROM [Transaction Table]
GROUP BY
Format$([Transaction Table].[Date],'mm/yyyy'),
Year([Transaction Table].[Date])*12+DatePart('m',[Transaction Table].[Date])-1;
结合前两个结果的最终查询:
SELECT DISTINCTROW
[Month],
Count(ID) AS [Unique Customers]
FROM
(SELECT DISTINCT
[Student_ID] AS ID,
Format$([Date],'mm/yyyy') AS [Month]
FROM [Transaction Table]) AS [%$##@_Alias]
GROUP BY
[Month],
Year([Month])*12+DatePart('m',[Month])-1;