black

 

字段名

函义

数据类型

是否为空

备注

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

 

分类:

技术点:

相关文章: