--goods1商品1基本表
create table goods1
(
gkno char(8) primary key, --商品种类编号(主键)
gname varchar(50) not null, --商品名称
gfactory varchar(50) not null, --出厂商
gprice numeric(7,2) not null, --零售价
gmemberprice numeric(7,2) , --会员价
gquantity smallint not null --数量
)--goods2商品2基本表
create table goods2
(
gno char(8) primary key, --商品编号(主键)
gkno char(8) not null foreign key (gkno) references goods1(gkno), --商品种类编号(外键)
gpdate datetime not null, --生产日期
guarantee datetime not null --保质期
)--Staff员工基本表
create table staff
(
sno char(6) primary key, --员工编号(主键)
spassword varchar(20) not null, --密码
flag char(6) not null --标识管理员和营业员
)--Customer 会员基本表
create table customer
(
cmemberno char(8)primary key, --会员证号
cmemberscore smallint, --会员积分
cattenddate datetime, --办理日期
ceffectivedate datetime --有效日期
)--Sale 购买基本表
create table sale
(
cno char(8) not null, --流水号(外键)
cmemberno char(8) foreign key (cmemberno)references customer(cmemberno),
gno char(8) not null foreign key (gno) references goods2(gno), --商品编号(外键)
sdate datetime not null, --购买日期
sno char(6) not null foreign key (sno) references staff(sno), --员工编号(外键)
primary key(cno,gno) --主键(流水号,商品编号)
)
create view sale_ticket2 as
select cno,gkno,sdate from sale,goods2
where goods2.gno=sale.gnocreate view sale_ticket3 as
select cno,count(*) as 数量 ,sdate from sale_ticket2 group by cno,sdatecreate view sale_ticket4 as
select distinct 流水号,会员证号,会员积分,商品种类编号,商品名称,单价,会员价,数量,数量*会员价 as 总价,购物时间
from sale_ticket1,sale_ticket3
where 流水号=cno and 购物时间=sdate 想实现下面代码,应该怎么写?请各位帮帮忙。就是if else的问题,执行语句都是对的。
if (select 会员证号 from t exists select cmemberno from customer)
select 流水号,会员证号,会员积分,商品种类编号,商品名称,单价,会员价,数量,数量*会员价 as 总价, 购物时间 from sale_ticket4,customer
where 会员证号= customer.cmemberno;
else
select 流水号,商品种类编号,商品名称,单价,会员价,数量,数量*单价 as 总价,购物时间 from sale_ticket4;
create table goods1
(
gkno char(8) primary key, --商品种类编号(主键)
gname varchar(50) not null, --商品名称
gfactory varchar(50) not null, --出厂商
gprice numeric(7,2) not null, --零售价
gmemberprice numeric(7,2) , --会员价
gquantity smallint not null --数量
)--goods2商品2基本表
create table goods2
(
gno char(8) primary key, --商品编号(主键)
gkno char(8) not null foreign key (gkno) references goods1(gkno), --商品种类编号(外键)
gpdate datetime not null, --生产日期
guarantee datetime not null --保质期
)--Staff员工基本表
create table staff
(
sno char(6) primary key, --员工编号(主键)
spassword varchar(20) not null, --密码
flag char(6) not null --标识管理员和营业员
)--Customer 会员基本表
create table customer
(
cmemberno char(8)primary key, --会员证号
cmemberscore smallint, --会员积分
cattenddate datetime, --办理日期
ceffectivedate datetime --有效日期
)--Sale 购买基本表
create table sale
(
cno char(8) not null, --流水号(外键)
cmemberno char(8) foreign key (cmemberno)references customer(cmemberno),
gno char(8) not null foreign key (gno) references goods2(gno), --商品编号(外键)
sdate datetime not null, --购买日期
sno char(6) not null foreign key (sno) references staff(sno), --员工编号(外键)
primary key(cno,gno) --主键(流水号,商品编号)
)
create view sale_ticket2 as
select cno,gkno,sdate from sale,goods2
where goods2.gno=sale.gnocreate view sale_ticket3 as
select cno,count(*) as 数量 ,sdate from sale_ticket2 group by cno,sdatecreate view sale_ticket4 as
select distinct 流水号,会员证号,会员积分,商品种类编号,商品名称,单价,会员价,数量,数量*会员价 as 总价,购物时间
from sale_ticket1,sale_ticket3
where 流水号=cno and 购物时间=sdate 想实现下面代码,应该怎么写?请各位帮帮忙。就是if else的问题,执行语句都是对的。
if (select 会员证号 from t exists select cmemberno from customer)
select 流水号,会员证号,会员积分,商品种类编号,商品名称,单价,会员价,数量,数量*会员价 as 总价, 购物时间 from sale_ticket4,customer
where 会员证号= customer.cmemberno;
else
select 流水号,商品种类编号,商品名称,单价,会员价,数量,数量*单价 as 总价,购物时间 from sale_ticket4;
select s.流水号,isnull(c.会员证号,''),isnull(c.会员积分,''),s.商品种类编号,s.商品名称,s.单价,isnull(c.会员价,0),数量,数量*isnull(c.会员价,s.单价) as 总价, s.购物时间 from sale_ticket4 s
left join customer c on c.cmemberno = s.会员证号