在这里记录一些比较烦人的SQL语句,有的时候觉得简单,但有的时候还真难写出来。还是功力不够啊,加油
1、统计当年以前的销售总额
表结构
income
--year:年份
--quantity:数量
创建数据库脚本
create table income(
year int not null primary key,
quantity int not null);
插入数据
insert into income(year,quantity) values(2005,1000);
insert into income(year,quantity) values(2006,3000);
insert into income(year,quantity) values(2007,5000);
insert into income(year,quantity) values(2008,8000);
insert into income(year,quantity) values(2009,12000);
统计sql
select year as newyear,(select sum(quantity) from income where year<=newyear) as total from income group by newyear;
结果
newyear |totaol
2005|1000
2006|4000
2007|9000
2008|17000
2009|29000
2、数据库设计问题:当数据对象拥有的父子级别关系纵向很长时,比如说公司的组织结构,总公司分为分公司,分公司又有分公司……,这种情况该如何设计表结构
这是以前我去一家公司面试遇到的问题,当时我就想到了继承关系,回答的答案是,设计一个父表,子表关联父表的id,一次这样,然后面试关问我如果这种级别关系有100个,那也就是需要设计一百张表,然后查询某公司的所有子公司和父公司的时候,这100张表都要关联查询,这样做是不是太复杂,效率太慢了,想想确实也是。他让我再想想有没有更好的解决方案。当时我的脑子就蒙的,想来想去都是继承关系。
其实这个问题我在第一家公司就遇到过,而且解决办法还是相对可以,就这样我被淘汰了。下面说说这种解决方案
遇到这种级别继承关系在设计数据库时,千万不要老是思想固化在继承关系上。我们可以采用给机构进行编号,在编号上面体现继承的父子关系,解决方法如下
总公司编号:01
一级分公司两个,分别编号为:01-01,01-02
一级分公司下面的每个分公司又有两个子公司,这四个公司的编号分别为:01-01-01,01-01-02;01-02-01,01-02-02
……
就这样,我们采用编号唯一来确定某个公司,同样我们在知道某个公司的编号时,我们就能知道他所属的级别和他的父公司和子公司,这样查询起来就方便多了,设计时一张表就够了,查询时采用字符串匹配就可以很容易的 找出该公司的父级和子级
待续……
分享到:
相关推荐
sql,数据库,SQL语句参考,可以作为平时参考或者使用参考
SQL语句查询所有的重复记录,删除所有的重复记录,查找指定的重复记录
最基本的四种SQL语句删除重复记录的方法
动态SQL语句.txt 动态语句.txt 区分大小写.txt 去掉重复的列名.txt 取n到m条记录.txt 合并字符串.txt 多列的行转列.sql 多行补充.sql 多表对多表进行统计.txt 大小写转换.txt 子查寻和内联查寻.txt 学生名次.txt ...
Sql常用语句汇总记录.pdfSql常用语句汇总记录.pdf
根据DataTable中数据行记录改变的状态,动态生成SQL语句, 如果一个表中字段上百个,在只改了其中两三个字段时,则生成的SQL语句就只会含有这修改内容的字段, 有了这一个函数,从此彻底告别手动写SQL语句更新到...
查询本周记录\本月记录\本季度记录\本年记录等的SQL语句 分Mysql 和SQL Server 查询语句。 有效率的查询语句。
10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...
数据库基本----SQL语句大全学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的...
本人收集的几个比较好的sql查询重复记录语句
OneNote-经典SQL语句大全(绝对的经典) - 大江 - 博客园.pdf
使用Oracle查询并删除重复记录的SQL语句
SQL_server将表中的记录转换成Insert(插入)SQL语句,SQL_server将表中的记录转换成Insert(插入)SQL语句
oracle消耗资源的sql查询语句记录
SQL语句 删除最老记录和条件删除记录的三方法
各种sql实用例子 (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*from数据表where字段名like''%字段值%''orderby字段名[desc]" sql="selecttop10*from数据表where...
使用sql语句将查询的数据中的值按时间递增累加
用标准的SQL语句实现查询记录分页.txt
本人自己根据北大青鸟第一学期SQL课程里的内容所写的增删改查个中语句的知识点。可以说是一个小复习。每个知识点都配有例子来解释。
选择要执行SQL语句的数据库。SQLite 记录 历史服务器地址 方便下次操作 ,消息框返回每个数据库执行语句的 影响行数。SQL语句 包含 delete drop truncate 关键字时需要 勾选 相应的 checkbox,防止误操作 vs2012 ...