今天有个人问了一个问题,如下:
type AD value
A in 200
A out 50
B in 100
一条sql 计算 每个type的剩余量
in 代表增减
out 代表减少.
sql如下:
DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `type` varchar(255) DEFAULT NULL, `AD` varchar(255) DEFAULT NULL, `value` int(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of test -- ---------------------------- INSERT INTO `test` VALUES ('A', 'in', '200'); INSERT INTO `test` VALUES ('A', 'out', '50'); INSERT INTO `test` VALUES ('B', 'in', '100');
我的解答如下:
select type,sum(value * (case when AD = 'in' then 1 when AD = 'out' then -1 end)) as '剩余量' from test group by type;
解题思路如下:
每个type的剩余量,那么必须要对type进行分组。如果是单纯计算总量的话,我们直接对value进行sum即可,但是这个里面可以看出in是收入,out是支出,那么来看都是进行sum,只是符号变下即可,所以使用 case when语句就迎刃而解了。
相关推荐
一开始还以为数据库位置存在问题,所以重新放置了一个位置,仍然无效。最后,上网寻找解决方法。所幸的是此类问题还真有人遇到了,而且也有好几种解决方法。我就用了两种方法,分享一下吧: 方法一: 将要附加的文件...
本文档旨在解决 SQL Server 2008 R2 连接不上的问题,提供了详细的解决步骤,以便帮助有需要的人解决类似的问题。本文档的内容涵盖了 SQL Server 服务的启动、配置和故障排除等方面的知识点。 SQL Server 服务的...
SQL Server 2000是微软公司推出的一款关系型数据库...“爱书吧 电子书 教程 让更多人 读更多的书.url”可能是一个推荐的电子书资源网站,提供更多学习材料。这些资源对于深化SQL Server 2000的理解和实践都非常有帮助。
SQL Server 2000的性能监视工具,如查询分析器和Profiler,可以帮助识别和解决性能问题。 11. **复制技术** SQL Server 2000的复制功能允许数据在多台服务器之间同步,支持发布、订阅和事务性、合并及快照复制,...
在过去的10 年间,SQL 走过了很长的路,许多过去只能用C 和JAVA等过程化语言解决的典型问题现在都可以直接用SQL 解决了,但是很多开发人员并没有意识到这一事实。《SQL Cookbook中文版》就是要帮助大家认识到这一点...
总而言之,"sqlservr64.zip"提供的可能是修复SQL Server 2005 64位安装问题的必要文件,对于遇到类似问题的人来说,这是一个宝贵的资源。但是,为了正确应用这个解决方案,用户需要识别并替换相应的文件,这可能需要...
下面是一段用于检测和解决SQL死锁的脚本示例: ```sql SELECT t2.username, t2.sid, t2.serial#, t2.logon_time FROM v$locked_object t1, v$session t2 WHERE t1.session_id = t2.sid ORDER BY t2.logon_time; ```...
"解决SQL服务开启不了.txt"可能包含了解决此问题的步骤或建议。通常,解决此类问题的第一步是尝试手动启动服务,如果失败,我们可以查看错误日志获取更具体的故障信息。在SQL Server安装目录下的`MSSQL\Log`文件夹中...
例如,假如你有一个特定的业务问题要解决,目前只用SQL检索数据,而其他复杂的业务逻辑由其他语言完成,如果代码没有问题,而且性能也过得去,那么,谢天谢地。我绝对无意建议你扔掉以前的代码重新寻求完全SQL 的...
总的来说,解决Win10系统上WinCC flexible的SQL报错问题,关键在于正确处理与SQL Server LocalDB的冲突,并对软件进行修复。通过上述步骤,大多数情况下可以恢复软件的正常运行。如果问题持续存在,建议联系西门子的...
在使用SQL Server 2012的过程中,有时用户会遇到一个令人头疼的问题:系统不允许保存对数据库表结构的更改。这个问题主要体现在尝试添加新字段或者修改现有字段时,SQL Server 2012拒绝保存这些更改。这种情况不仅...
在SQL Server的安装过程中,有时会遇到一个令人头疼的警告信息:“以前的某个程序安装已在安装计算机上创建挂起的文件操作,运行安装程序之前必须重新启动计算机”。这个提示通常意味着系统在前一次安装尝试中留下了...
总之,这些步骤构成了一个全面的SQL数据库质疑解决流程,涵盖了从配置调整、状态管理、数据文件修复到数据一致性检查的各个环节,对于确保数据库的稳定运行具有重要意义。在实际操作中,DBA应当根据具体情况灵活运用...
然而,在安装过程中,有些用户会遇到一个让人头疼的问题——安装程序突然显示“挂起”,进程停滞不前,无法继续进行。这种情况下,通常会伴随一个错误代码或简短的错误描述,告知用户安装遇到了未知障碍。 ### 挂起...
PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种过程化语言,专为数据库操作设计。这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册...
“已经帮助过很多人解决了”表明这个问题是普遍存在的,并且这个批处理文件经过了验证,对解决同类问题有较高的成功率。在实际应用中,用户只需双击运行这个批处理文件,它将自动执行必要的注册表更改,以解决SQL ...
日志管理是数据库管理中的一个重要环节,本教程详细介绍了如何查看、分析和清理SQL Server的日志文件,帮助管理员确保数据库的稳定运行,同时避免因日志过大导致的性能问题。 ### SQL Server2005自学视频教程 针对...
总的来说,这个压缩包提供了一个全面的学习资源,涵盖了从基础的SQL语法到更高级的数据库系统设计和管理,适合初学者逐步提升技能,同时也适用于有一定基础的人复习和巩固。通过解决这些题目,学生不仅可以掌握SQL...