----------------------2019/6月份 <<必知必会>>书本练习-实践练习---------------------------
---order by没有where就是在前,而又多个列的组合条件在在后面
select top 10 * from VF_TSTOSTOCK_UCML
select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName from VF_TSTOSTOCK_UCML where (PRODCOD ='AL15-083' or STOFCY ='L1') and VCRTYPName ='杂项入仓单' order by STOID desc

select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName,*from VF_TSTOSTOCK_UCML where STU in('黑色.均码','DBA152601.均码')

select top 10 * from VF_TSTOSTOCK_UCML
select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName from VF_TSTOSTOCK_UCML where NOT STU ='黑色.均码'
--desc降序 z-a-1
select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName,STU from VF_TSTOSTOCK_UCML where STU <> '黑色.均码'
order by BPSCOD desc
------------------2.-like的搜索------------------------
--不等于STU <> '黑色.均码'值 模糊查询+排序+分组
select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName,STU from VF_TSTOSTOCK_UCML where STU <> '黑色.均码'
and STU like '红%' order by BPSCOD desc

select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName,STU,*from VF_TSTOSTOCK_UCML where STU <> '黑色.均码'
--'红%L%' 与'红%L' 的区别:%L%这个是为了区分空格就是不被索引出来的,一般用这个哈,方正结果都一样
and STU like '红%L%'
select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName,STU,*from VF_TSTOSTOCK_UCML where STU <> '黑色.均码'
and STU like '红%L'
--12.均码 --DBA150903.均码 '[^红1D]%中的^ --是脱字符--检索不属与红,1,D的开头,同时值又不等于黑色.均码的
select top 10 STOID,BPSCOD,BPSNAM,ITMNAM,STOFCYName,STU,*from VF_TSTOSTOCK_UCML where (STU <> '黑色.均码')
and STU like '[^红1D]%' order by ITMCOD desc
-------------------3.拼接字符-----------------------
--无效???50页的知识
-- select top 10 BPSNAM +'(’+con_content+‘)' as 公司形象 from VF_TSTOSTOCK_UCML order by ITMCOD
select top 10 BPSNAM +'/(con_content)' as 公司形象 from VF_TSTOSTOCK_UCML order by ITMCOD
--select top 10 BPSNAM ||'(con_content)' from VF_TSTOSTOCK_UCML order by ITMCOD --SQL不能用--其他的MYsql可以
--RIRIM函数,为确定格式化的数据,就比如拼接字符串的空啊(sum )这些。-就在需要拼接的字符串前面加RIRIM函数实现后变为(sum)
--LTRIM函数 (去掉串左边的空格) TRIM(去掉两边的空格)
select top 10 * from VF_TSTOSTOCK_UCML
--计算字段--就是计算他的总额 两句差不多有点相识--
select top 10 BPSCOD,BPSNAM,ITMNAM,STOFCYName,STU,PCU*QTYPCU AS PQ from VF_TSTOSTOCK_UCML where BPSCOD ='Z999999'
select top 10 BPSCOD,BPSNAM,ITMNAM,STOFCYName,STU,PCU*QTYPCU AS PQ from VF_TSTOSTOCK_UCML order by BPSCOD DESC

--使用函数:CONVERT()--强转日期 getdate() --获取当前日期 SUBSTRING()--获取串的组成部分
--MYSQL这个平台使用--不同是CURDATE ---获取当前日期
----------------------------------groug by 分组--------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
--------------------------------2019/6/15 <<即查即用>>书本练习-基础练习---------------------------
--统计的年表--
select COUNT(TOTQTYSTU) from TSOHORDER where TOTQTYSTU <>1
--基础表
select top 10 * from TSOHORDER
--排序从小到大,,,
select * from TSOHORDER order by SOHNUM asc
--四种别名的方式
select SOHID 哈哈,SHIPTO "不服",SOHTYP "你真棒",CREDEP AS "正常",* from TSOHORDER order by BPCCOD
--为聚合函数设置别名 MIN ,SUM ,COUNT,AVG,MAX
select MIN(SOHID) AS '最大值',MAX(TOTLINAMT) AS '最大值',SUM(SOHID) AS '总和',AVG(SOHID) as '平均值',Count(*) as 多少 from TSOHORDER
--去掉重复
select distinct top 100 BPCNAM from TSOHORDER
--总结结合-- 去掉重复 100限制查询,别名,拼接,显示返回的 列和所以,排序+降序, 模糊查询筛选,
select distinct top 100 BPCNAM as '名称',SOHNUM +'/' as 拼接,*from TSOHORDER
where CREUSR like 'n%' and BPCNAM ='散客'
order by BPCCOD desc
------------------------拼接+字段合计+算数运行+强转-------------------------
--拼接字符串合并为一列
--人生思考 --这个别名的用途在创建视图的时候会用到 --显示的数据便是创建别名的数字
select top 10 SOHNUM+'/'+BPCNAM+'/'+CONVERT(varchar(100),TOTLINAMT) as '两列合并',*from TSOHORDER
--算数平均数--心得 --只对数字有用,字符串的无效
select top 10 TOTATILINAMT+CURRAT as '两列计算',TOTQTYSTU%TOTLINAMT AS '余数',CONVERT(VARCHAR(100),TOTLINAMT/DLVSTA)+'/'+BPCNAM AS 除法 from TSOHORDER

--四舍五入出错--从数据类型 varchar 转换为 float 时出错。 原因前面是整数,后面是字符串--
--想办法在里面在嵌套一层,四舍五入保留两位小数
--select top 10 TOTATILINAMT+CURRAT as '两列计算',TOTQTYSTU%TOTLINAMT AS '余数',Round(CONVERT(float,TOTLINAMT/DLVSTA),2)+'/'+BPCNAM AS 除法 from TSOHORDER
--保留2位小数加强转 余数:2%3,7%3
select top 10 (((TOTATILINAMT+CURRAT*DLVSTA)*2-1))%10 as '各类加急乘除运行',TOTQTYSTU%TOTLINAMT AS '余数',convert(VARCHAR(100),TOTPRERECAMT%TOTATILINAMT) AS '2%3或者7%3',CONVERT(VARCHAR(100),Round(CONVERT(float,TOTLINAMT/DLVSTA),2))+'/'+BPCNAM AS 除法 from TSOHORDER
--TOTLINCOST限时条数不等于0的数,为零的不显示,说明了少了很多条为空的数据不给它显示了
select top 100 SOHID+(50*4) AS 元,*from TSOHORDER
WHERE TOTLINCOST <>0
--------------------------年-月--日 格式 ------------------------------------------
select top 100 SOHID+(50*4) AS 元,CONVERT(VARCHAR(100),RSTPRERECAMT)+'元' as '金额',
CONVERT(VARCHAR(10),MONTH(SUBTIM))+'月',
GETDATE() as '当前操作时间',
Convert(varchar(10),YEAR(GETDATE()))+'-'+Convert(varchar(10),MONTH(GETDATE())) +'-'+'01' as '年-月=日',
DATEADD(month,1,ORDDAT)-day(dateadd(DAY,1,ORDDAT)) as '日差值',
DATEDIFF(YY,'2018-10-10','2020-10-22') as '年间隔差',
DATEDIFF(month,'2018-10-10','2019-10-22') as '月间隔差',
DATEDIFF(day,'2018-10-10','2019-10-22')+1 as '日间隔差',
DATEADD(month,1,ORDDAT)-day(dateadd(month,1,ORDDAT)) as '本月月底',
DATEADD(yy,DATEDIFF(yy,0,ORDDAT)-1, 0) as '去年第一天',
dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,ORDDAT), 0)) as '去年最后一年',

DATEADD(yy,DATEDIFF(yy,0,ORDDAT)+1, 0) as '本年第一天',
dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,ORDDAT)+2, 0)) as '本年最后一年',
DATEADD(yy,DATEDIFF(yy,0,ORDDAT)-2, 0) as '近2年开始',
dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,ORDDAT)+1, 0)) as '近2年结束',
---
1+2,
*from TSOHORDER
WHERE TOTLINCOST<>0 and RSTPRERECAMT<>0

select top 100 * from TSOHORDER
---总仓STOFCYNAME 名字不对齐,总仓这一些一点,后面中间又是总仓-还有值为的null,会明显多出来很多,多出来400条
select STOFCYName,* from VF_TPTHRECEIPTHD_UCML
---限制一个条件不等于null,(并且总仓数据的时候会比较整齐,比如说总仓的时候不会乱--,都是按照选项有序)
--同时为空的显示,少了很多条数据,有利于优化速度
select STOFCYName,* from VF_TPTHRECEIPTHD_UCML
WHERE STOFCYName is not null
--===========================中间过渡- -项目实践-核心====================----
-----------------------------------------------------------------------------------
---len 为了SALFCYL的L后面的数字对其有序排序,
--SALFCY asc这个不能少,少了就乱了
select LEN('no'),LEN('日期+1'),LEN(12345),SALFCY from TSOHORDER
group by SALFCY
order by len(SALFCY) asc,SALFCY asc
--where DATEADD('2018',DATEDIFF('2018',0,getdate()),0) < ORDDAT
-------------实践下视图的部分--
select
'年' as curType,
--,null as Year --年份/地点2019/12楼96档
curYear,
null as SALFCY,--销售地点
null as SALFCYName, --销售地点
SUM(TOTATILINAMT) as TOTATILINAMTOder, --1.订单金额:9,000,00
COUNT(TOTQTYSTU) as SOHNUMOder, --2.订单笔数
SUM(TOTATILINAMT)/COUNT(TOTQTYSTU) as TOTATILINAMTPrice, --3.客单价unit price
COUNT(BPCCOD) AS SOHNUMBPCQTY, --4.客户个数
SUM(PRODCODQTY) AS PRODCODQTY, --5.销售数量:980款/90.000件
SUM(TSR.TOTQTYSTU) as TOTQTYSTUMUN, --6。发货数量:89,999件(订单上的发货汇总

SUM(NSENDQTY) as TOTQTYSTUMUNCat,--未发数量 --7.非当天发货数量
SUM(TOTATILINAMT)/SUM(PRODCODQTY) as TOTATILINAMTPriceCot ---8.均价 金额除以销售数量
from(
select
YEAR(TSR.ORDDAT) as curYear,
TSR.TOTATILINAMT,
TSR.TOTQTYSTU,
TSR.BPCCOD,
TP.PRODCODQTY,
TSP.NSENDQTY,
TSP.NSENDQTY,
TSP.PRODCODQTY
isnull(TSR.QTYPCU,0)-isnull(DTSRSDHQTY,0)+isnull(D.CNCQTY,0) as UNSENDQTY --2018-06-25 su 未发货数量 --2018-09-06过滤红字订单的
from
TSOHORDER TSR,TSODORDERD TP where TSR.SOHNUM=TP.SOHNUM and H.SOHSTA='2'
and H.ORDDAT>=@curyear_sdaydat
and H.ORDDAT<=@curyear_edaydat
) as t
group by curYear,SALFCY
order by len(SALFCY) asc,SALFCY asc
-----------------------------------------------------------------------

博客的第一天:回顾半年前的基础:SQL--基础查询+年月日格式+拼接的更多相关文章

  1. Vue实战狗尾草博客管理系统第一章

    Vue实战狗尾草博客后台管理系统第一章 这里准备采用的技术栈为:vue全家桶+element-ui 这里因为是后台管理系统,没有做SSR的必要.所以这里就采用前后端分离来昨晚这个项目~ 项目搭建 vu ...

  2. bugku秋名山老司机+写博客的第一天

    bugku之秋名山老司机 题目连接:http://123.206.87.240:8002/qiumingshan/ 一点进去是这样的 请在两秒内计算这个式子...怎么可能算的出来 查看源码,无果.. ...

  3. 开始写博客的第一天,如何用c实现“hello wolrd”

    “hello world” 应该是大多数人学习的第一个代码 那也就作为我第一篇博客的开端吧 实现的代码如下 #include <stdio.h> int main() { printf(& ...

  4. 写在新建博客的第一天 分类: fool_tree的笔记本 2014-11-08 17:57 144人阅读 评论(0) 收藏

    来CSDN开博客的目的有两个: 其一是因为CSDN的代码输出,看过一些博文,觉得这里的代码输出真的很漂亮: 其二则是因为,感觉自己印象笔记用久了之后,渐渐地几乎不再自己写些东西了,习惯了方便的剪藏插件 ...

  5. 学习python——博客记录第一天

    HELLO WORLD!   今天第一次开立博客,专门记载学习编程语言中的点点滴滴.今日学习内容: 搭建vs code+ python3.5 "ide" 学习廖雪峰python教程 ...

  6. 博客志第一天——判断一个整数N是否是完全平方数?

    关注博客园很久,今天是第一次写博客.先附上一个C题目:写一个函数判断一个整数是否为完全平方数,同时是否该数的各位数至少两个相同的数字 #include <stdio.h> #include ...

  7. 万里长征第二步——django个人博客(第一步 ——创建主页)

    运行命令行工具,输入:pip install virtualenv  --安装virtualenv库. virtualenv blog_project_venv ——使用virtualenv创建一个虚 ...

  8. 大数据系列博客之 --- 深入简出 Shell 脚本语言(基础篇)

    首先声明,此系列shell系列博客分为四篇发布,分别是: 基础篇:https://www.cnblogs.com/lsy131479/p/9914747.html 提升篇:https://www.cn ...

  9. 开通博客的第一天上传我的C#基础笔记,个人觉得很好用。

    1.索引器  string arrStr = "sddfdfgfh";  索引器的目的就是为了方便而已,可以在该类型的对象后面直接写[]访问该对象里面的成员  Console.Wr ...

随机推荐

  1. 2019 Multi-University Training Contest 9

    A. Rikka with Quicksort 题意 求 EX 快速排序复杂度. 做法 根据线性期望可加性,独立考虑长度为 \(m\) 的区段对答案的贡献.进行简单的公式推导,对 \(s(x)=\su ...

  2. Treasure Hunt CodeForces - 979B

    After the big birthday party, Katie still wanted Shiro to have some more fun. Later, she came up wit ...

  3. hdu 6016 Count the Sheep(思维)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6016 题意:给定男羊和女羊的朋友关系,即给定一个图,问从任意一只羊开始连续数四只不相同的羊的方法数. ...

  4. ZOJ 3872 Beauty of Array 连续子序列求和

    Edward has an array A with N integers. He defines the beauty of an array as the summation of all dis ...

  5. 高可用的K8S集群部署方案

    涉及到的内容 LVS HAProxy Harbor etcd Kubernetes (Master Worker) 整体拓补图 以上是最小生产可用的整体拓补图(相关节点根据需要进行增加,但不能减少) ...

  6. jvm默认垃圾收集器(JDK789)

    jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代) jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel ...

  7. Redis 的底层数据结构(SDS和链表)

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.可能几乎所有的线上项目都会使用到 Redis,无论你是做缓存.或是用作消息中间件,用起来很简单方便 ...

  8. StateListDrawable资源的使用

    StateListDrawable用于组织多个Drawable对象,当使用StateListDrawable作为目标组件的 背景和前景图片时,StateListDrawable对象所显示的Drawab ...

  9. 多场景抢红包业务引发.NETCore下使用适配器模式实现业务接口分离

    事情的起因 我们公司现有一块业务叫做抢红包,最初的想法只是实现了一个初代版本,就是给指定的好友单发红包,随着业务的发展,发红包和抢红包的场景也越来越多,目前主要应用的场景有:单聊发红包.群聊发红包.名 ...

  10. 作为Java开发人员不会饿死的5个理由

    尽管已有20多年的历史,Java仍然是最广泛使用的编程语言之一.只需看看统计数据:根据2018年Stack Overflow开发人员调查,Java是世界上第三大最受欢迎的技术. TIOBE指数,这是一 ...