zoukankan      html  css  js  c++  java
  • 报表[SQL语句]

     

    字段名

    函义

    数据类型

    是否为空

    备注

    CliId

    顾客编号

    int

    N

    PK 自动加1

    CliName

    顾客姓名

    varchar(20)

    N


    CliSex

    性别

    char(10)

    N


    CliCertificate

    证件号

    varchar(50)

    N

    例:身份证号

    CliPhone

    电话

    varchar(50)

    N

    11

    CliAddress

    联系地址

    varchar(50)

    Y


    CliCoding

    邮政编码

    Int

    Y


    CliBrithday

    生日

    datatime

    Y


    CliRemark

    备注

    varchar(50)

    Y


     

     

    属性

    函义

    数据类型

    是否为

    备注

    CdId

    编号

    int

    N

    PK 自动加1

    CdNumber

    卡号

    varchar(20)

    N

    UQ 唯一

    CdPwd

    密码

    varchar(20)

    N

    Md5加密

    CdBalance

    余额

    float

    N

    默认值为0

    CgrId

    卡级别id

    int

    N

    FK CardGrade

    EmpId

    办理人ID

    int

    N

    FK Employee

    CliId

    顾客编号

    Int

    N

    FK Clientinfo

    CdTimeBegin

    开卡时间

    datetime

    N

    默认getdate()

    CdTimeEnd

    终止时间

    datetime

    N

    晚于CdTimeBegin

    CdRemark

    备注

    varchar(50)

    Y


    CdIntegral

    卡积分

    Int

    Y

    默认为0

     

     

    属性

    函义

    数据类型

    是否为

    备注

    BusID

    交易信息ID

    int

    N

    PK 自动加1

    BusNumber

    消费单据号

    varchar(50)

    N


    BusDate

    交易日期

    datetime

    N

    默认getdate()

    BusFloat

    应付金额

    float

    N


    EmpId

    操作员ID

    int

    N

    FK employee

    CliId

    顾客id

    int

    Y

    FK Clientinfo

    BusBankCard

    银行卡

    float

    N

    默认为0

    BusCash

    现金

    float

    N

    默认为0

    Bnfree

    免单

    float

    Y

    Default 0

    BusState

    状态

    varchar(20)

    N

    已结帐,未结帐

     

     

    字段名

    函义

    数据类型

    是否为空

    备注

    ConId

    项目消费编号

    int

    N

    PK 自动加1

    SerId

    选择消费项目

    int

    N

    FK ServeItem

    EmpId

    选择服务师

    int

    N

    FK Employee

    BusNumber

    消费单据号

    varchar(50)

    N


    ConCount

    次数

    int

    N


    ConFloat

    金额

    float

    N


    ConDate

    消费时间

    datetime

    N

    getdate()

    ---【一】

    select ConsumeItem.ConDate as '日期',count(ConId) as '客户总数',

    count(Cards.CdID) as '会员人数'

    from ConsumeItem,Business,cards,Clientinfo

    where ConsumeItem.BusNumber=Business.BusNumber and Cards.CliId=Business.CliId

    group by ConsumeItem.ConDate

     

    ----【二】创建视图:view_ConDate_BusNumber

    if exists(select * from sysobjects where name='view_ConDate_BusNumber')

       drop view view_ConDate_BusNumber

    go

    create view view_ConDate_BusNumber

    as

    select convert(char(8),Business.BusDate,112) as 'date',ConsumeItem.BusNumber

    from ConsumeItem ,Business where ConsumeItem.BusNumber=Business.BusNumber

    group by convert(char(8),Business.BusDate,112),ConsumeItem.BusNumber

    go

    select * from view_ConDate_BusNumber

    ---【三】创建视图:view_BusDate_CliId_BusNumber

    if exists(select * from sysobjects where name='view_BusDate_CliId_BusNumber')

       drop view view_BusDate_CliId_BusNumber

    go

    create view view_BusDate_CliId_BusNumber

    as

    select convert(char(8),Business.BusDate,112) as 'DateTime',Business.CliId,Business.BusNumber from Business group by convert(char(8),Business.BusDate,112),Business.CliId,Business.BusNumber

    go

    select * from view_BusDate_CliId_BusNumber

     

    ----【四】创建视图:view_BusDate_CliId_BusNumber_CliID

    if exists(select * from sysobjects where name='view_BusDate_CliId_BusNumber_CliID')

       drop view view_BusDate_CliId_BusNumber_CliID

    go

    create view view_BusDate_CliId_BusNumber_CliID

    as

    select convert(char(8),Business.BusDate,112) as 'datetime_view',Business.CliId as 'CliId',Business.BusNumber as 'BusNumber',Cards.CdID as 'CdID'

    from Business left outer join Cards on Cards.CliId=Business.CliId

    group by convert(char(8),Business.BusDate,112),Business.CliId,Business.BusNumber,Cards.CdID

    go

    select * from view_BusDate_CliId_BusNumber_CliID

     

    ----【五】创建视图:view_BusDate_CliId_BusNumber_CliID

    if exists(select * from sysobjects where name='view_BusDate_CliId_BusNumber_CliID')

       drop view view_BusDate_CliId_BusNumber_CliID

    go

    create view view_BusDate_CliId_BusNumber_CliID

    as

    select convert(char(8),Business.BusDate,112) as 'datetime_view',Business.CliId as 'CliId',Business.BusNumber as 'BusNumber',Cards.CdID as 'CdID',Clientinfo.CliSex as 'Sex'

    from Business left outer join Cards on Cards.CliId=Business.CliId inner join Clientinfo on Clientinfo.CliId=Business.CliId

    group by convert(char(8),Business.BusDate,112),Business.CliId,Business.BusNumber,Cards.CdID,Clientinfo.CliSex

    go

    select * from view_BusDate_CliId_BusNumber_CliID

    ----【六】由视图查询:

    if exists(select * from sysobjects where name='view_BusDate_CliId_BusNumber_CliID')

       drop view view_BusDate_CliId_BusNumber_CliID

    go

    create view view_BusDate_CliId_BusNumber_CliID

    as

    select convert(char(8),Business.BusDate,112) as 'datetime_view',count(Business.CliId) as 'CliId',count(Business.BusNumber) as 'BusNumber',Cards.CdID as 'CdID',Clientinfo.CliSex as 'Sex'

    from Business left outer join Cards on Cards.CliId=Business.CliId inner join Clientinfo on Clientinfo.CliId=Business.CliId

    group by convert(char(8),Business.BusDate,112),Cards.CdID,Clientinfo.CliSex

    go

    select * from view_BusDate_CliId_BusNumber_CliID

     

    ---查询结果:

    select datetime_view as '日期',count(cliid) as '顾客总数',count(cdid) as '会员数',(count(cliid)-count(cdid)) as '非会员数','男顾客'=case

    when sex='' then count(sex)

    else 0 end,

    '女顾客'=case

    when sex='' then count(sex)

    else 0 end

    from view_BusDate_CliId_BusNumber_CliID dv group by datetime_view,sex

     

    ---【七】:最终结果

    select convert(char(8),Business.BusDate,112) as '日期',count(Business.CliId) as '顾客总数',count(Cards.CdID) as '会员数',count(Business.CliId)-count(Cards.CdID) as '非会员数',

    '男顾客'=case

    when Clientinfo.CliSex='' then count(Clientinfo.CliSex)

    else 0 end,

    '女顾客'=case

    when Clientinfo.CliSex='' then count(Clientinfo.CliSex)

    else 0 end

    from Business left outer join Cards on Cards.CliId=Business.CliId inner join Clientinfo on Clientinfo.CliId=Business.CliId

    group by convert(char(8),Business.BusDate,112),Clientinfo.CliSex

     

  • 相关阅读:
    centos : 创建交换分区
    用法记录
    mysql日志清理
    mysql 通过查看mysql 配置参数、状态来优化你的mysql
    [WPF 自定义控件]Window(窗体)的UI元素及行为
    [WPF 自定义控件]为Form和自定义Window添加FunctionBar
    [WPF 自定义控件]让Form在加载后自动获得焦点
    [WPF 自定义控件]简单的表单布局控件
    [WPF 自定义控件]以Button为例谈谈如何模仿Aero2主题
    [WPF 自定义控件]自定义控件的代码如何与ControlTemplate交互
  • 原文地址:https://www.cnblogs.com/black/p/5171987.html
Copyright © 2011-2022 走看看