ACCESS数据库分组查询语句如何实现

ACCESS数据库分组查询语句如何实现,第1张

select 测站名称,avg(温度) from test where 日期 between #2015/1/6# and #2015/8/2# group by 测站名称

这样吗?

在数据库中,查询数据中的姓名是必须学习的内容,所以今天就由小编来为大家介绍数据库怎么用命令查询姓李并且只有两个字的人数。

1第一首先在电脑上打开数据库软件。然后附加要查询的数据库。

2第二然后选中附加的数据库。再右键,选择新建查询。

3第三然后在右边的空白框中。输入命令selectleft(姓名,1),count(姓名)。

4第四然后关联上数据库的学生表。命令为from学生表。

5第五然后要对left(姓名,1)进行分组。命令为groupby(姓名,1)。

6第六然后再输入查询姓李的条件命令。命令为havingleft(姓名,1)='李'。

您的回答会被数十乃至数万的网友学习和参考,所以请一定对自己的回答负责,尽可能保障您的回答准确、详细和有效表1(已有数据)——进货表name, buycount

apple 1200

banana 200

表2(已有数据) ——订单表

name, needdate, needcount

apple 2000-1-1 200

apple 2000-1-2 300

banana 2000-1-1 300

banana 2000-1-2 500

banana 2000-1-3 400

表3(当前数据)——订单需求余量表

name needdate, havecount, needcount

apple 2000-1-1 50 150

banana null 200 0 (needdate为null表明上次有结余)

要求:

每次采购后,用SQL语句根据订单需求表将数据冲入订单需求余量表。

冲入标准:

先将每种水果冲入日期早的订单,订单充满后再冲入下一日期的订单,依此循环

如果购买数大于所有订单总需求,那么表明购买多了,多的数冲入余量表后needdate为null表明为上次购买结余,下次购买水果后可使用该数量继续冲订单。

SQL执行后表3结果如下:

表3(冲数结果)

name needdate, havecount, needcount

apple 2000-1-1 200 0

apple 2000-1-2 300 0

apple null 700 0 --购买1200,冲入第一单200,第二单300,结余700

banana 2000-1-1 300 0 --上次结余200+本次购买200冲入第一单300,第二单100

banana 2000-1-2 100 400

banana 2000-1-3 0 400结果表写错了,apple应该结余750

SQL执行后表3结果如下:

表3(冲数结果)

name needdate, havecount, needcount

apple 2000-1-1 200 0

apple 2000-1-2 300 0

apple null 750 0 --购买1200,冲入第一单150(原来已经存在50),第二单300,结余750

banana 2000-1-1 300 0 --上次结余200+本次购买200冲入第一单300,第二单100

banana 2000-1-2 100 400

banana 2000-1-3 0 400可以自定义

oracle 有重复值,分组取和 100

业务表很大, 不能单独举例,大体意思如下图:1以NO字段为主,进行分组。2同一个NO,会对应不同的姓名。3如果收费项目包含‘10’的话,NO字段在表中唯一,不重复。4目标语句:当收费醒目包含‘10’这一项,则统计no='1' 且 姓名=‘张三’,所有收费项目对 业务表很大, 不能单独举例,大体意思如下图:1以NO字段为主,进行分组。2同一个NO,会对应不同的姓名。3目标语句:当收费醒目包含‘10’这一项,则统计no='1' 且 姓名=‘张三’,所有收费项目对应的金额之和。

1以NO字段为主,进行分组。

select ano,sum(a金额) from table a group by ano

2同一个NO,会对应不同的姓名。

select ano,a姓名,sum(a金额) from table a group by ano,a姓名

3目标语句:当收费醒目包含‘盐’这一项,则统计no='10' 且 姓名=‘张三’,所有收费项目对

select a项目,sum(a金额) from table a where a收费项目= '1' and ano = '10' and a姓名=‘张三’ group by a项目

1如果你的时间格式是2012-01-13 17:35:52217这样的形式,(主要是那个01不要是1),用下面这个 SELECT convert(varchar(10),时间,23),SUM(数字数据) FROM 表 group by convert(varchar(10),时间,23) 2如果你的时间格式不是上面的格式,先转化成datetime: SELECT convert(varchar(10),cast(时间 as datetime),23) ,SUM(数字数据) FROM 表 group by convert(varchar(10),cast(时间 as datetime),23) 3如果报错,请追问~

可以用Floor与Rand函数嵌套表达式为每行记录生成1-4之间的随机数,然后以该随机数对记录行排序,这样就可将该列数随机分成四组了。当然表的记录行数不能太少,否则无法保证至少有4个组。

请参考下列sql实现语句:

这里假设表名为t1,字段名为num

select t from

(select Floor(4 Rand()+1) as GroupName,

num from t1) t order by tGroupName;

以上就是关于ACCESS数据库分组查询语句如何实现全部的内容,包括:ACCESS数据库分组查询语句如何实现、数据库怎么用命令查询姓李并且只有两个字的人数、SQL 分组语句求解:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9818975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存