一条语句中查询数据库表中state字段为不同情况下的记录数

本文介绍了使用SQL进行计数查询的技巧,包括如何从单一表和多个表中获取不同条件下的记录数量,避免使用可能产生误导结果的查询方式。

一条语句中查询数据库表中state字段为不同情况下的记录数

SELECT
Count_1=(SELECT Count(*) FROM Table1 WHERE state= 1),
Count_2=(SELECT Count(*) FROM Table1 WHERE state= 2),

Count_3=(SELECT Count(*) FROM Table1)

 

相同的方法

从多个表里获得count值

SELECT
(SELECT COUNT(DISTINCT id) FROM member) AS members,
(SELECT COUNT(DISTINCT id) FROM thread) AS threads,
(SELECT COUNT(DISTINCT id) FROM post) AS posts

不要用

SELECT COUNT(DISTINCT member.id), COUNT(DISTINCT thread.id), COUNT(DISTINCT post.id) FROM member, thread, post;

这种情况下,如果某个count为零,其他都为零

 

好久没写东西了,随便写点^_^

 

 

### 如何在 Access VBA 使用 SQL UPDATE 语句更新数据库中的记录 为了在 Access VBA 中使用 SQL `UPDATE` 语句来修改数据库记录,可以采用多种方式执行此操作。以下是几种常见的方式及其适用场景。 #### 方法一:使用 DoCmd.RunSQL 执行即时命令 这种方法适用于简单的查询,不需要返回任何结果集的情况。代码如下: ```vb Dim strSQL As String strSQL = "UPDATE 1 SET 字段1='新值' WHERE FileName='特定文件名';" DoCmd.RunSQL strSQL ``` 这种方式简单明了,适合快速执行一次性的更新操作[^4]。 #### 方法二:利用 CurrentDb().Execute 提交事务并获取影响行数 对于更复杂的逻辑处理或需要确认受影响的行数时,推荐使用 `CurrentDb().Execute` 方法。这不仅能够执行更新语句,还可以捕获可能发生的错误以及统计实际被更改了多少记录。 ```vb Dim db As DAO.Database Set db = CurrentDb() On Error GoTo ErrorHandler db.Execute "UPDATE 1 SET 字段1='新值',字段2='另一新值' WHERE FileName='特定文件名'", dbFailOnError MsgBox "成功更新了 " & db.RecordsAffected & " 记录" ExitHere: Exit Sub ErrorHandler: MsgBox Err.Description Resume ExitHere End Sub ``` 上述例子展示了如何安全地执行带有多个字段更新的操作,并且加入了基本异常处理机制以提高程序稳定性。 #### 方法三:连接外部 MySQL 数据库并通过 ADO 对象模型发送请求 当目标不是本地的 Access 数据库而是远程的 MySQL 数据库时,则需先建立相应的 ODBC 连接字符串,并创建合适的 ADODB.Connection 和 Command 对象来进行交互。 ```vb Public Function UpdateMySqlRecord() As Boolean Dim conn As Object Set conn = CreateObject("ADODB.Connection") With conn .ConnectionString = MYDRIVER & MYSERVER & MYPORT & MYDATABASE & MYUSER & MYPASS .Open If Not (.State And adStateOpen) Then UpdateMySqlRecord = False Exit Function End If On Error GoTo HandleError .Execute "UPDATE abc.table_name SET column1=value1,column2=value2 WHERE condition;" UpdateMySqlRecord = True HandleError: If Err.Number <> 0 Then Debug.Print Err.Description .Close End With End Function ``` 这段脚本说明了怎样设置好必要的常量参数后,通过 ADO 库实现跨平台的数据同步功能[^3]。 以上三种途径都可以有效地帮助开发者完成基于不同需求下的数据更新任务,在具体应用过程中可根据实际情况灵活选用最恰当的一种方案。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值