字段方法“轻松”实现一次查询多表
2013-05-12 16:17
204 查看
最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--字段方法
机房收费系统中有几个地方都是要反映学生的当前余额的问题,余额涉及到相同卡编号的花费金额、注册金额以及充值时的金额,这三种金额都放在三个地方,如果独自获得,在B层就要三个方法。如果将这三种金额放在同一个地方,就要多建一个表。如安在不增加表,又只通过一个方法能一次性将三种金额都查询出来呢 ?
其实这就涉及到SQL语句的写法。
Select Sum(表1.字段),Sum(表2.字段),Sum(表3.字段),From 表1 Cross Join 表2 Cross Join 表3 Where(表1.字段=表2.字段 And 表2.字段=表3.字段 and 表1.字段=查询的参数)
例如:
Select Sum(OutLineInfo.ConsumeCash),Sum(ReChargeInfo.AddMoney),Sum(StudentInfo.Cash) From OutLineInfo Cross Join ReChargeInfoCross Join StudentInfo where(StudentInfo.CardNo = ReChargeInfo.CardNo And ReChargeInfo.CardNo = outlineinfo.CardNo And StudentInfo.CardNo=@CardNo)
每日一道理
微笑,是春天里的一丝新绿,是秋日里的一缕阳光,是骄阳下的一片浓荫,是冬雪中的一株梅红……微笑着去面对吧,你会感到人生是那样的温馨与甜蜜!
这样就可以一次性查询出多个表中需要寻觅的参数
总结:
就这么一个小小的问题,也曾让我想了许久,查找了许多资料才弄出来,想想是为什么?SQL知识我们已经很早以前就学过了,但学到的也只是外相,当时在听得时候也只知道个大概与可能,对SQL整体印象也知识增编削查,但具体怎么做,却并不知道,这就需要我在当前的学习中加深对SQL知识的学习,不局限于外相。
另外思维逻辑与寻觅知识的关键点也至关重要,就像这个问题,我开始想到的方法是从新将有关钱(包括这三个字段)建立一个表,如果这样,得增加各个层的代码,也要修改UML图;做了一点,让我越做越觉得麻烦,才追求简单方法。用视图,视图建立起来,却达不到我想要的效果,再另寻方法,查书籍,上彀搜寻,在偶尔中看到一个SQL语句,经过重复实验,修改才打到此目的。如果从一开始我就想到从新多建一张表比较麻烦,就不会再将时光花在写这部分代码上了。
但没有开始的失败又怎么有当初的胜利呢?不管怎样,我都学到了。。。。
文章结束给大家分享下程序员的一些笑话语录:
Google事件并不像国内主流媒体普遍误导的那样,它仅仅是中国Z府和美国公司、中国文化和美国文化甚至中国人和美国人之间的关系,是民族主义和帝国主义之间的关系;更重要的是,它就是Z府和公司之间的关系,是权力管制和市场自由之间的关系。从这个意义上说,过度管制下的受害者,主要是国内的企业。Google可以抽身而去,国内的企业只能祈望特区。www.ishuo.cn
机房收费系统中有几个地方都是要反映学生的当前余额的问题,余额涉及到相同卡编号的花费金额、注册金额以及充值时的金额,这三种金额都放在三个地方,如果独自获得,在B层就要三个方法。如果将这三种金额放在同一个地方,就要多建一个表。如安在不增加表,又只通过一个方法能一次性将三种金额都查询出来呢 ?
其实这就涉及到SQL语句的写法。
Select Sum(表1.字段),Sum(表2.字段),Sum(表3.字段),From 表1 Cross Join 表2 Cross Join 表3 Where(表1.字段=表2.字段 And 表2.字段=表3.字段 and 表1.字段=查询的参数)
例如:
Select Sum(OutLineInfo.ConsumeCash),Sum(ReChargeInfo.AddMoney),Sum(StudentInfo.Cash) From OutLineInfo Cross Join ReChargeInfoCross Join StudentInfo where(StudentInfo.CardNo = ReChargeInfo.CardNo And ReChargeInfo.CardNo = outlineinfo.CardNo And StudentInfo.CardNo=@CardNo)
每日一道理
微笑,是春天里的一丝新绿,是秋日里的一缕阳光,是骄阳下的一片浓荫,是冬雪中的一株梅红……微笑着去面对吧,你会感到人生是那样的温馨与甜蜜!
这样就可以一次性查询出多个表中需要寻觅的参数
总结:
就这么一个小小的问题,也曾让我想了许久,查找了许多资料才弄出来,想想是为什么?SQL知识我们已经很早以前就学过了,但学到的也只是外相,当时在听得时候也只知道个大概与可能,对SQL整体印象也知识增编削查,但具体怎么做,却并不知道,这就需要我在当前的学习中加深对SQL知识的学习,不局限于外相。
另外思维逻辑与寻觅知识的关键点也至关重要,就像这个问题,我开始想到的方法是从新将有关钱(包括这三个字段)建立一个表,如果这样,得增加各个层的代码,也要修改UML图;做了一点,让我越做越觉得麻烦,才追求简单方法。用视图,视图建立起来,却达不到我想要的效果,再另寻方法,查书籍,上彀搜寻,在偶尔中看到一个SQL语句,经过重复实验,修改才打到此目的。如果从一开始我就想到从新多建一张表比较麻烦,就不会再将时光花在写这部分代码上了。
但没有开始的失败又怎么有当初的胜利呢?不管怎样,我都学到了。。。。
文章结束给大家分享下程序员的一些笑话语录:
Google事件并不像国内主流媒体普遍误导的那样,它仅仅是中国Z府和美国公司、中国文化和美国文化甚至中国人和美国人之间的关系,是民族主义和帝国主义之间的关系;更重要的是,它就是Z府和公司之间的关系,是权力管制和市场自由之间的关系。从这个意义上说,过度管制下的受害者,主要是国内的企业。Google可以抽身而去,国内的企业只能祈望特区。www.ishuo.cn
相关文章推荐
- ibatis 查询部分字段的List的实现方法
- Python实现Sqlite将字段当做索引进行查询的方法
- Python实现Sqlite将字段当做索引进行查询的方法
- thinkPHP实现多字段模糊匹配查询的方法
- Mongoose实现虚拟字段查询的方法详解
- thinkPHP实现多字段模糊匹配查询的方法
- “轻松”实现一次查询多表
- Elasticsearch中同时实现对某一字段的精确查询和模糊查询的方法
- php+mysql+ajax实现单表多字段多关键词查询的方法
- MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法
- MSSQL 多字段根据范围求最大值实现方法
- ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
- [DB][ORACLE][统计函数]使用LAG和LEAD函数可以在一次查询中取出同一字段的前N行的数据和后N行的值
- javascript中使用splice方法轻松实现对数组元素的插入、删除、替换
- 第十三章 带参方法 模拟学生信息登记,实现查询,录入,修改学生信息
- 解析MSSQL跨数据库查询的实现方法
- 在GET请求方法中,实现向现有URL的末尾添加查询字符串参数
- ajax实现动态从数据库模糊查询显示到下拉框中(ajax方法返回Dataset的例子)
- 今日收获总结(关于存储过程时间查询的一些方法以及字段截取的函数及调用示例)
- thinkphp模型过滤查询字段,表达式方法