zoukankan      html  css  js  c++  java
  • 写报表常用基础知识点

    1,简单多表查询

    select *

    from  表1 as 别名1,表2 as 别名1,表3 as 别名1,表4 as 别名1

      where  别名1.userid = 别名2.id

    2,连接查询

    select A.ID, A.NAME, A.AGE, B.GS,B.CLASS

      from 表1 as A left join 表2 as B on A .userid = B.id,

        表3 as C left join 表2 as D on C .gs .id = D.id

    where   

    GROUP BY A.ID

    左连接 LEFT JOIN    右连接 RIGHT JOIN  内连接INNER JOIN

    3,一个表分时间段,本日,本月,本年,查询对应数据

    可使用case when

    例如:case when year (时间字段) = year (getdate()) then 1 

    when year (时间字段) = year (getdate() and  month(时间字段) =  month(getdate()) then 0

    else 0 end

    4, case when  可以给表格增加额外的行来辅助计算或者作为状态判定

    例如:case when age<18  then '未成年'

        when  age>=18 and age<=28 then '青年'

        else '中年' end

    5,union 和union all

      select a,b,c,d,e,f

      from A,B,C

      WHERE A.ID = B.USERID

    UNION

      select g,h,i,j,k,l

      from D,E,F

      WHERE D.ID = E.USERID

    UNION和UNION ALL 的作用都是把两个表的数据连接起来,放到一个表,

    注意下一个表的数据是接在上一个表的对应列的下方,所以两个表的列要一一对应,

    然后区别在于 UNION 会进行去重,UNION ALL 不会去重。

    6,将一个表的查询结果作为另一个表的查询表(其实就是生成了个临时表,去查临时表)

    例如;
    select gs,sum(dnum)AS dnum,sum(mnum)AS mnum,SUM(ynum)AS ynum
    from (
    select  
            C.scode AS CODE
            ,GS.sname AS gs
            ,case when  year(C.qdsj) = year(GETDATE())and month(C.sj) = month(GETDATE())and day(C.sj) = day(GETDATE())  
                then 1 else 0 end as dnum
            ,case when  year(C.sj) = year(GETDATE())and month(C.sj) = month(GETDATE())
                then 1 else 0 end as mnum
            ,case when  year(cast(C.sj as datetime))=year(GETDATE()) then 1 else 0 end as yearnum
            from compact as C,gongsi as GS
                     where C.gsid = GS.id
                     and year(C.sj)=year(GETDATE())
                     )C GROUP BY gs

    7,over 可用于开窗,例如

    select * over()

    from A,B

    WHERE  A.ID = B.UAERID

    8, cast万能格式转换器的用法、

    标准格式 cast(a,xddate  as  datetime )或者 cast(a.title as varchar(50)) 

    cast(目标字段 AS 目标数据类型(长度))

    9,获取本日,本月,或者本年日期

    方法一:
    select  CONVERT(varchar(10),DATEADD(DAY,-1,GETDATE()),120) /** 本天  **/
    select    CONVERT(varchar(10),DATEADD(DAY,-day(GETDATE()),GETDATE()),120)/** 本月  **/
    select  CONVERT(varchar(10),DATEADD(MONTH,-MONTH( CONVERT(varchar(10),DATEADD(DAY,-day(GETDATE()),GETDATE()),120)),
    方法二

        CONVERT(varchar(10),DATEADD(DAY,-day(GETDATE()),GETDATE()),120)),120) /** 本年 **/
        and YEAR(A.sj) = year(cast(GETDATE()as datetime))
        and month(A.sj)=month(CONVERT(datetime,DATEADD(DAY,-day(GETDATE()),GETDATE()),120))    
        select    month(CONVERT(datetime,DATEADD(DAY,-day(GETDATE()),GETDATE()),120))

    方法三
    and A.sj = cast( CONVERT(date,DATEADD(DAY,-0,GETDATE()),120) as datetime)
    and A.sj >cast(CONVERT(date,DATEADD(DAY,-day(GETDATE())+1,GETDATE()),120)as datetime)
    and YEAR(A.sj) = year(GETDATE())

    10,CONVERT()的用法

    示例用法:

    CONVERT(varchar(10),DATEADD(DAY,-1,GETDATE()),120)  //当前时间减去一天

    CONVERT(varchar(10),DATEADD(month,-1,GETDATE()),120)  //当前时间减去一月

    CONVERT(varchar(10),DATEADD(year,-1,GETDATE()),120)  //当前时间减去一年

    11,创建索引

    /*
                          //普通索引alter table table_name add index index_name (column_list) ;
                          //唯一索引alter table table_name add unique (column_list) ;
                          //主键索引alter table table_name add primary key (column_list) ;*/

    12, 视图

    create view A_view_AAAA  //创建

    DROP VIEW  A_view_AAAA  //删除

    13,待更新

  • 相关阅读:
    CShop Project 082: 获取分页数据模型并传递到页面上
    CShop Project 08: 展示不同类型的商品
    CShop Project 08: 开发商品分类的查询和展示
    119 类和数据类型
    118 对象的绑定方法
    117 对象的属性查找顺序
    116 定制对象独有特征
    115 类和对象
    114 面向对象编程介绍
    113 面向对象程序设计的由来(了解)
  • 原文地址:https://www.cnblogs.com/yjyxzzz/p/13995921.html
Copyright © 2011-2022 走看看