sql基础语句01
来源:互联网 发布:软件产品类别是什么 编辑:程序博客网 时间:2024/05/17 04:50
sql基础语句笔记
1、将表中某一字段的最大值取出来的方式:
SELECT MAX(contract_no) FROM contract_c WHERE contract_no LIKE '%JK%'
2、在查看合同(contract_c)时,查看合同对应的货物(contract_product_c)数量和货物对应附件(ext_cproduct_c)的数量。
合同表的ID是货物表的外键,货物ID是附件的外键。是两层一对多的关系。
SELECT contract_no,( SELECT COUNT(*) FROM contract_product_c WHERE contract_id = c.CONTRACT_ID)cpnumFROM contract_c c WHERE contract_id='4028817a3357462e01336d3a0be10014'
SELECT COUNT(*) FROM ext_cproduct_c WHERE contract_product_id IN( SELECT contract_product_id FROM contract_product_c WHERE contract_id ='4028817a3357462e01336d3a0be10014')
SELECT( SELECT COUNT(*) FROM contract_product_c WHERE contract_id = c.contract_id) cpnum, ( SELECT COUNT(*) FROM ext_cproduct_c WHERE contract_product_id IN( SELECT contract_product_id WHERE contract_id = c.contract_id ) )epnum,c.*FROM contract_c c
3、查询合同(contract_c)对应的货物(contract_product_c)的数量(cnumber)和价格(price)的乘积
SELECT c.contract_no, cp.cpnum, cp.cptotalFROM(SELECT * FROM contract_c)cLEFT JOIN(SELECT contract_id,COUNT(*) AS cpnum,SUM(cnumber*price) AS cptotal FROM contract_product_cGROUP BY contract_id)cpON c.contract_id = cp.contract_id
4、
SELECT c.contract_no, t.factory_name,t.product_no, t.ext_factory_name,t.ext_product_no FROM(SELECT contract_id,contract_no FROM contract_c)cLEFT JOIN (SELECT cp.contract_id, cp.factory_name,cp.product_no, ep.factory_name AS ext_factory_name,ep.product_no AS ext_product_no FROM ( SELECT cp.contract_product_id,cp.contract_id,f.factory_name,cp.product_no FROM (SELECT contract_product_id,contract_id,factory_id,product_no FROM contract_product_c)cp LEFT JOIN (SELECT factory_id,factory_name FROM factory_c)f ON cp.factory_id = f.factory_id )cp LEFT JOIN ( SELECT ep.ext_cproduct_id,ep.contract_product_id,ep.product_no,f.factory_name FROM (SELECT ext_cproduct_id,factory_id,contract_product_id,product_no FROM ext_cproduct_c)ep LEFT JOIN (SELECT factory_id,factory_name FROM factory_c)f ON ep.factory_id = f.factory_id )ep ON cp.contract_product_id = ep.ext_cproduct_id)t ON c.contract_id = t.contract_id
SELECT c.*, t.factory_name,t.product_no, t.ext_factory_name,t.ext_product_no FROM(SELECT * FROM contract_c)cLEFT JOIN (SELECT cp.contract_id, cp.factory_name,cp.product_no, ep.factory_name AS ext_factory_name,ep.product_no AS ext_product_no FROM ( SELECT cp.contract_product_id,cp.contract_id,f.factory_name,cp.product_no FROM (SELECT contract_product_id,contract_id,factory_id,product_no FROM contract_product_c)cp LEFT JOIN (SELECT factory_id,factory_name FROM factory_c)f ON cp.factory_id = f.factory_id )cp LEFT JOIN ( SELECT ep.ext_cproduct_id,ep.contract_product_id,ep.product_no,f.factory_name FROM (SELECT ext_cproduct_id,factory_id,contract_product_id,product_no FROM ext_cproduct_c)ep LEFT JOIN (SELECT factory_id,factory_name FROM factory_c)f ON ep.factory_id = f.factory_id )ep ON cp.contract_product_id = ep.ext_cproduct_id)t ON c.contract_id = t.contract_id
SELECT c.*, t.contract_product_id,t.factory_name,t.product_no,t.product_desc,t.cnumber,t.packing_unit,t.price,t.amount, t.ext_cproduct_id,t.ext_factory_name,t.ext_product_no,t.ext_product_desc,t.ext_cnumber,t.ext_packing_unit,t.ext_price,t.ext_amountFROM(SELECT * FROM contract_c) cLEFT JOIN( SELECT cp.contract_id, cp.contract_product_id,cp.factory_name,cp.product_no,cp.product_desc,cp.cnumber,cp.packing_unit,cp.price,cp.amount, ep.ext_cproduct_id,ep.factory_name AS ext_factory_name,ep.product_no AS ext_product_no,ep.product_desc AS ext_product_desc,ep.cnumber AS ext_cnumber,ep.packing_unit AS ext_packing_unit,ep.price AS ext_price,ep.amount AS ext_amount FROM ( SELECT cp.contract_product_id,cp.contract_id,f.factory_name,cp.product_no, cp.product_desc,cp.cnumber,cp.packing_unit,cp.price,cp.amount FROM (SELECT contract_product_id,contract_id,factory_id,product_no, product_desc,cnumber,packing_unit, price,amount FROM contract_product_c) cp LEFT JOIN (SELECT factory_id,factory_name FROM factory_c) f ON cp.factory_id = f.factory_id ) cp LEFT JOIN ( SELECT ep.ext_cproduct_id,ep.contract_product_id,f.factory_name,ep.product_no, ep.product_desc,ep.cnumber,ep.packing_unit,ep.price,ep.amount FROM (SELECT ext_cproduct_id,contract_product_id,factory_id,product_no, product_desc,cnumber,packing_unit, price,amount FROM ext_cproduct_c) ep LEFT JOIN (SELECT factory_id,factory_name FROM factory_c) f ON ep.factory_id=f.factory_id ) ep ON cp.contract_product_id=ep.contract_product_id) t ON c.contract_id=t.contract_id
5、查询出每门课都大于80分的学生姓名,
selec distinct name from scores where name not in( select distinct name from scores where score<=80 )
6、每个月发生额比101科目多的科目
CREATE TABLE TestDB(id INT PRIMARY KEY AUTO_INCREMENT, AccID VARCHAR(20), Occmonth DATE,DebitOccur INT);INSERT INTO TestDB VALUES(NULL,'101','1997-1-1',100),(NULL,'101','1997-2-1',120),(NULL,'101','1997-3-1',140),(NULL,'101','1997-4-1',110);INSERT INTO TestDB VALUES(NULL,'102','1997-1-1',90),(NULL,'102','1997-2-1',120),(NULL,'102','1997-3-1',140),(NULL,'102','1997-4-1',110);INSERT INTO TestDB VALUES(NULL,'103','1997-1-1',130),(NULL,'103','1997-2-1',160),(NULL,'103','1997-3-1',170),(NULL,'103','1997-4-1',190);SELECT DISTINCT AccID FROM TestDBWHERE AccID NOT IN(SELECT TestDB.AccID FROM TestDB, (SELECT * FROM TestDB WHERE accID = '101')AS db101 WHERE TestDB.Occmonth = db101.Occmonth AND TestDB.DebitOccur<= db101.DebitOccur );
7、统计每年每月的信息
CREATE TABLE sales(id INT AUTO_INCREMENT PRIMARY KEY, years VARCHAR(10), months VARCHAR(10), amount FLOAT(2,1)); INSERT INTO sales VALUES (NULL,'1991','1',1.1), (NULL,'1991','2',1.2), (NULL,'1992','3',1.3), (NULL,'1992','4',1.4); SELECT sales.years, (SELECT t.amount FROM sales t WHERE t.months='1' AND t.years = sales.years)AS '1',(SELECT t.amount FROM sales t WHERE t.months='2' AND t.years = sales.years)AS '2',(SELECT t.amount FROM sales t WHERE t.months='3' AND t.years = sales.years)AS '3',(SELECT t.amount FROM sales t WHERE t.months='4' AND t.years = sales.years)AS '4'FROM sales GROUP BY years;
阅读全文
0 0
- sql基础语句01
- SQL查询语句基础
- 基础Sql语句
- 最基础sql语句
- SQL语句使用基础
- Sql基础语句
- Sql 基础语句
- 2-基础SQL语句
- SQL语句收集--基础
- 基础sql语句
- Sql语句最基础
- SQL基础语句+说明
- sql管理基础语句
- Sql基础语句【整理】
- sql语句基础
- sql语句基础
- 基础类 - SQL语句
- SQL基础实用语句
- JDK内置工具使用
- 手机端弹出层弹出后,下面禁止滑动
- RxJava2.x使用以及操作符详解
- PAT (Advanced Level) Practise 1112 Stucked Keyboard (20)
- hql查询多条记录,结果都是重复第一条记录
- sql基础语句01
- 深入SpringMVC
- 一些常见的排序的集合
- Coursera加密与加密货币导论1-1加密哈希函数
- 岛屿的个数
- 设计模式—备忘录模式(十四)
- iOS 使用mp4v2合成的视频注意事项
- CORDIC之线性坐标系旋转
- next_permutation函数