非IT对口工作,但是因为工作需要时长需处理分析一些表格数据,以前一些简单的数据利用EXCEl轻松解决,但是随着工作的深入,接触了量级更大更多的数据,尝试利用以前初学的数据库知识处理数据,主要使用MySQL和Navicat for MySQL。
近日,为了把一个交易记录表转换成需要特定格式的统计表时陷入僵局,网上搜索方法没有看到想要的和好用的,在尝试后自己解决了,为此第一次发文纪念一下,请高手指正。不用嵌套查询如何实现?
回到正题:
原表描述:目标账号的交易记录分为借贷类型、发送方、接收方、时间、金额。
需求表:统计目标账号和各个交易对方的收、支、(收-支)情况。
交易记录表:tp_trades
接收金额(元)
非IT对口工作,但是因为工作需要时长需处理分析一些表格数据,以前一些简单的数据利用EXCEl轻松解决,但是随着工作的深入,接触了量级更大更多的数据,尝试利用以前初学的数据库知识处理数据,主要使用MySQL和Navicat for MySQL。近日,为了把一个交易记录表转换成需要特定格式的统计表时陷入僵局,网上搜索方法没有看到想要的和好用的,在尝试后自己解决了,为此第一次发文纪念一下,请高手指正...
代码如下:select user_name,count(*) as count from user_table group by user_name having count>1; 这个我在很早有发过
一个
asp下的ACCESS 的
您可能感兴趣的文章:浅谈
MySQL
临时表与派生表
Mysql
跨表更新 多表update sql语句总结
mysql
锁表和解锁语句分享
MySQL
中基本的多表连接查询教程
MySQL
表字段设置默认值(图文教程及注意细节)
MySQL
中使用表别名与字段别名的基本教程
mysql
查询表里的重复
数据
方法
mysql
导入导出
数据
库、
数据
表的
Source Server : helloword
Source Server Type :
MySQL
Source Server Version : 50549
Source Host : localhost:3306
Source Schema : db_account
Target Server Type :
MySQL
Target S
在
Mysql
做
统计
时候经常会用SUM求和的函数,但是这个函数就是在求和的时候在没有符合where条件的时候就会返回null值。这个null如果在代码里面不处理就会报空指针异常问题。但是按照一般业务需求,没有求和的值时候结果应该是0。那么就需要
一个
给它赋值
一个
0就好了。
Mysql
提供了函数coalesce。coalesce()解释:返回参数中的第
一个
非空表达式(从左向右依次类推)。
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
//事务操作的讲解
public class Demo3 {
public static void main(String[] args) throws SQLException {
如果你想在MFC程序中操作
MySQL
数据
库,需要使用
MySQL
Connector/C++,它是
MySQL
官方提供的C++语言的驱动程序。以下是基于
MySQL
数据
库
进行
操作并更改
数据
库表第
一行
的第二个到第二十个元素值的代码:
1. 使用
MySQL
Connector/C++库连接
MySQL
数据
库。
#include <
mysql
_driver.h>
#include <
mysql
_connection.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
#include <cppconn/resultset.h>
sql::Driver* driver;
sql::Connection* con;
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "your_username", "your_password");
con->setSchema("your_database_name");
2. 查询
数据
库表中的第
一行
记录
。
sql::PreparedStatement* pstmt;
sql::ResultSet* res;
pstmt = con->prepareStatement("SELECT * FROM your_table_name LIMIT 1");
res = pstmt->executeQuery();
res->next();
3. 更新第二个到第二十个元素的值。
pstmt = con->prepareStatement("UPDATE your_table_name SET your_field_name2=?, your_field_name3=?, ..., your_field_name20=? WHERE your_primary_key=?");
pstmt->setString(1, "new_value2");
pstmt->setString(2, "new_value3");
pstmt->setString(19, "new_value20");
pstmt->setInt(20, res->getInt("your_primary_key"));
pstmt->executeUpdate();
4. 关闭连接和结果集。
res->close();
pstmt->close();
delete res;
delete pstmt;
con->close();
delete con;
需要注意的是,上述代码中的"your_username"、"your_password"、"your_database_name"、"your_table_name"、"your_field_name2"、"your_field_name3"、"your_field_name20"、"your_primary_key"等需要根据你的实际
情况
进行
替换。