在microsoft access 2013中使用count(*)语句

时间:2016-04-23 08:49:25

标签: sql sql-server ms-access

您好我尝试过在microsoft访问中使用count(*)语句的代码 我成功使用了这个

SELECT Count(*) AS cafe3sales
FROM tblroder
WHERE OrderCode LIKE 'O03*';

但我需要在一张桌子上展示咖啡馆1 2和3的销售情况。你能帮我吗 ? 谢谢

这是我在Excel中的数据:

enter image description here

4 个答案:

答案 0 :(得分:0)

您需要使用分组

SELECT Count(TableIDField) AS cafe3sales, Cafeid
FROM tblorder
Group By Cafeid

答案 1 :(得分:0)

您可以在“查询设计”视图中为您构建SQL,方法是在“咖啡馆”列的“总计:”行下拉列表中选择“分组依据”,并为另一列选择计数。如果您然后切换到SQLview,您将看到sql代码。

答案 2 :(得分:0)

您可以使用它将三个结果放在一个记录中

SELECT sum(iif(left(OrderCode,3)= 'O03',1,0)) AS cafe3sales,
       sum(iif(left(OrderCode,3)= 'O02',1,0)) AS cafe2sales,
       sum(iif(left(OrderCode,3)= 'O01',1,0)) AS cafe1sales,
FROM tblroder

或者这个在中有三个不同的记录。只有在每种类型中至少有一种(并且不存在其他类型)时才会获得三条记录。

SELECT count(*), left(OrderCode,3)
FROM tblroder
GROUP BY left(OrderCode,3)
ORDER BY left(OrderCode,3) desc

答案 3 :(得分:0)

您的要求不清楚。当你说:

  

...我需要在一张桌子上展示1号和2号咖啡馆的销售情况。

你的意思是你想知道销售数量(使用COUNT)或总价值(使用SUM)?

您是否希望返回的值是所有三个咖啡馆(1行)的总数,或者您想要查看每个咖啡馆的总数(3行)?

如果您想要所有三家咖啡馆的总数,请使用此商品获取订单的

SELECT COUNT(*) AS CountOfOrders
FROM tblorder
WHERE CafeID IN ('C01', 'C02', 'C03')

或者这样可以获得订单的

SELECT SUM(TotalPrice) AS SumOfTotalPrice
FROM tblorder
WHERE CafeID IN ('C01', 'C02', 'C03')

如果您需要为每个咖啡馆提供这些总计,则需要使用GROUP BY& HAVING。以下是与以前相同的两个查询,但每个咖啡馆的结果都是分开的

SELECT CafeID, COUNT(*) AS CountOfOrders
FROM tblorder
GROUP BY CafeID
HAVING CafeID IN ('C01', 'C02', 'C03')

SELECT SUM(TotalPrice) AS SumOfTotalPrice
FROM tblorder
GROUP BY CafeID
HAVING CafeID IN ('C01', 'C02', 'C03')