问题:
mssql中是否可以用group实现如下或者其他解决方案
表t1
id t2id amount otherid
1 1 11 123
2 2 12 234
3 3 13 345
4 4 21 456
5 5 22 567
表t2
id name
1 一
2 一
3 一
4 二
5 二
得到如下结果集:
t2.name t1.amount t1.otherid
一 36 123,234,345
二 43 456,567
解答:
mssql不知道,通过查询mysql文档这么做可以做,已经测试通过。
select t2.name, sum(t1.amount),
GROUP_CONCAT(t1.otherid ORDER BY t1.id ) as otherid
from t1,t2
where t1.t2id=t2.id
group by t2.name
我这里没有mssql的测试环境,mssql应当类似的.但是估计不同的是
GROUP_CONCAT这个函数。
代码
/*@charset utf8*/
/*test in Mysql5.0.24 server*/
DROP DATABASE IF EXISTS `testGroup`;
CREATE DATABASE `testGroup` ;
USE `testGroup`;
/* */
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`id` int,
`t2id` int,
`amount` int,
`otherid` int
) ;
insert into t1 values(1 ,1 ,11 ,123);
insert into t1 values(2 ,2 ,12 ,234);
insert into t1 values(3 ,3 ,13 ,345);
insert into t1 values(4 ,4 ,21 ,456);
insert into t1 values(5 ,5 ,22 ,567);
DROP TABLE IF EXISTS `t2`;
CREATE TABLE `t2` (
`id` int,
`name` varchar(20)
) ;
insert into t2 values(1 ,'一');
insert into t2 values(2 ,'一');
insert into t2 values(3 ,'一');
insert into t2 values(4 ,'二');
insert into t2 values(5 ,'二');
/*
Result:
t2.name t1.amount t1.otherid
一 36 123,234,345
二 43 456,567
*/
select t2.name, sum(t1.amount),
GROUP_CONCAT(t1.otherid ORDER BY t1.id ) as otherid
from t1,t2
where t1.t2id=t2.id
group by t2.name
分享到:
相关推荐
- MSSQL中使用`@@IDENTITY`来获取最后插入的ID值,在MySQL中则使用`LAST_INSERT_ID()`。 2. **处理空值** - 在MSSQL中的`ISNULL`函数,在MySQL中对应的是`IFNULL`。例如: ```sql -- MSSQL SELECT ISNULL...
首先,MySQL是一个开源、免费的数据库系统,广泛应用于Web应用。它支持SQL标准,提供了快速的数据存取和高度的可扩展性。MySQL的用户管理涉及创建、修改和删除用户账户,以及权限分配。表空间管理则包括设置存储空间...
这个压缩包对于正在学习或已经在工作中使用这些技术的人来说,无疑是一份宝贵的参考资料,可以提高他们的技术水平和解决问题的能力。通过深入学习和实践,可以提升数据库管理、Web开发和系统运维的技能,对于个人的...
SLStuan(仿拉手网团购程序)是一套Groupon模式的开源团购程序,是一套仿拉手网团购程序,是国内首套采用ASP+MSSQL开发的团购程序,安装超简,功能超全面,在保留手拉手团购系统版权的前提下,允许所有用户永久免费...
MySql 中的自动增长量使用 AUTO_INCREMENT,而 MSSql 中使用 IDENTITY 概念。 本文档提供了使用 PHP4 开发基于数据库的 WEB 程序的详细指南,涵盖了 PHP4 的安装、配置、数据库连接、查询语句、分页等方面的知识点...
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性而闻名。它支持多种操作系统,并且拥有丰富的功能和良好的社区支持。除了MySQL之外,还有其他几种主流的关系型数据库系统,...
### MySQL数据库操作详解 #### 一、数据库管理 ##### 创建数据库 ```sql CREATE DATABASE database-name;...以上是MySQL数据库操作的一些基础和高级知识,这些命令和操作能够帮助你在数据库管理方面更加高效地工作。
使用`CREATE TABLE`语句创建了一个名为`student`的表,包含了`id`(主键,自动增长)、`class`(班级)、`chinese`(语文成绩)、`english`(英语成绩)、`math`(数学成绩)、`name`(姓名)、`age`(年龄)和`...
在本篇《与MSSQL对比学习MYSQL的心得(七)--查询》中,我们将探讨MySQL中的查询操作,与SQL Server进行对比,以帮助读者更好地理解和掌握这两种数据库系统的查询差异和相似之处。MySQL的SELECT语句是数据检索的核心...
- EXCEPT运算符:从第一个SELECT语句的结果中排除第二个SELECT语句中出现的行。 - INTERSECT运算符:返回两个SELECT语句结果集的交集,即同时出现在两个查询结果中的行。 9. 外连接的使用 - LEFT (OUTER) JOIN:...
SQL参考手册中可能还会详细介绍视图(VIEW)的概念,视图是基于一个或多个表的虚拟表,可以简化复杂的查询并提供安全性。索引(INDEX)是提高查询性能的关键,它们加速了数据的查找过程。 另外,存储过程(STORED ...
综上所述,Zabbix是一个功能强大的监控工具,能够满足不同规模企业和不同监控需求的场景。无论是对于小型网站还是大型企业的数据中心,Zabbix都能够提供全面的监控和报警服务,是IT运维管理不可或缺的工具之一。
综上所述,Pinpoint是一个功能强大的APM工具,特别适合用于对大规模分布式系统进行性能监控和问题诊断。其提供的多种视图和分析功能,以及支持的广泛模块,使得Pinpoint可以应用于多种场景下。由于中文资料的稀缺,...
5. **GROUP BY 语句**:在与聚合函数(如 COUNT(), SUM(), AVG(), MAX(), MIN() 等)一起使用时,GROUP BY 用于根据一个或多个列对数据进行分组,然后对每个组应用函数。例如,`SELECT department, COUNT(employee_...
MySQL的InnoDB Cluster提供了一个全面的高可用性解决方案,包括MySQL Shell、MySQL Router和MySQL Group Replication。这些组件共同确保数据复制、容错和故障转移,提升了MySQL的集群管理能力。 6. **Percona的...
它由一个国外团队维护更新,用户可以自由下载使用,并通过技术支持获得盈利。该软件使用C/S模式采集数据,B/S模式在Web端展示和配置,需运行在LAMP(Linux+Apache+MySQL+PHP)环境上。Zabbix支持自动发现网络设备和...
在SQL Server和MySQL数据库中,按天、按小时或按分钟统计连续时间段数据是一项常见的需求,这有助于分析数据峰值和趋势。以下是如何实现这一目标的详细步骤和知识点: 1. **master..spt_values表**: - `master.....
在IT行业中,SQL对于数据库管理和开发至关重要,无论是MSSQL(Microsoft SQL Server)还是其他数据库系统如MySQL、Oracle、PostgreSQL等,SQL的基本语法和原理都是相通的。 首先,让我们来看看SQL的基础知识。SQL...