一个超市数据库的需求问题

woai代码 2014-10-18 09:38:18
现有一个需求:售货员工资=底薪+提成,底薪=月销售额*0.6除以员工人数,提成=2000/销售额排名。建表如下,indent为订单表,salesclerk为售货员表
订单表只列出了部分数据,不过已经够用,其中salesclerk表中数据是我以9月为例算的销售额、工资等,排名是我排玩销售额后手动填上去的,因为我不知道不手动填怎么算工资提成那一部分
我的问题是:我想求售货员年收入排行(现以年收入=9、10两月工资总和为例),该怎么求(主要是排名问题从而算提成,两个月可能会不同,而之前的9月排名是我手动填的)
...全文
213 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2014-10-19
  • 打赏
  • 举报
回复
引用
mysql> insert into goods(g_ID,g_name,unit_price,amount) values(101,'cola','2.50' -> ,300),(102,'pepsi','2.80',400); ERROR 1054 (42S22): Unknown column 'g_name' in 'field list' mysql>
建议提供可以直接使用的测试用例.
woai代码 2014-10-18
  • 打赏
  • 举报
回复
1、顾客 create table customer (c_ID varchar(10) not null primary key, c_name varchar(20) not null, c_sex varchar(2) not null, birth datetime, tel varchar(12)); 3、商品 create table goods (g_ID varchar(10) not null primary key, unit_price float not null, amount int, sold_amount int); 售货员 create table salesclerk (s_ID varchar(10) not null primary key, s_name varchar(20) not null, s_sex varchar(2) not null, salary float, salenum int, sale float, ranking int); 5、订单 create table indent (order_ID varchar(10) not null primary key, date datetime not null, ordernum int not null, c_ID varchar(10), g_ID varchar(10), s_ID varchar(10), foreign key (c_ID) references customer(c_ID), foreign key (g_ID) references goods(g_ID), foreign key (s_ID) references salesclerk(s_ID), total float, unit_price float not null); 数据 mysql> insert into customer(c_ID,c_name,c_sex,birth) values(1001,'zhangjun','F','1995 -1-1'),(1002,'wanghong','M','1995-2-1'),(1003,'liushen','F','1995-3-1'),(1004,'zhangxin','F ','1995-4-1'); mysql> insert into customer(c_ID,c_name,c_sex,birth) values(1005,'zhouwei','M','19 95-5-1'),(1006,'shenbing','F','1995-6-1'),(1007,'lihai','M','1995-7-1'),(1008,'zhangyan' ,'F','1995-8-1'),(1009,'zhaoyan','F','1995-9-1'),(1010,'sunwen','M','1995-10-1'); 2、插入商品信息 mysql> insert into goods(g_ID,g_name,unit_price,amount) values(101,'cola','2.50' ,300),(102,'pepsi','2.80',400); mysql> insert into goods(g_ID,g_name,unit_price,amount) values(103,'Dove',39.90, 100),(104,'shilijia',37.00,100),(105,'kisses',99.90,100),(106,'dabaitu',22.70,10 0),(107,'Lindt',15.90,100),(108,'Nestle',39.80,100),(109,'Lipton',44.80,100); mysql> insert into goods(g_ID,g_name,unit_price,amount) values(110,'Maxwell',35. 90,100),(111,'KOPIKO',49.70,100),(112,'AVS',59.00,100),(113,'pantene',39.90,100) ,(114,'CLEAR',35.50,100),(115,'Rejoice',39.90,100),(116,'LUX',57.80,100); mysql> insert into goods(g_ID,g_name,unit_price,amount) values(117,'OMO',19.00,1 00),(118,'Tide',13.50,100),(119,'ZHONGHUA',8.60,100),(120,'CREST',3.20,100); 插入售货员信息 mysql> insert into salesclerk(s_ID,s_name,s_sex) values(001,'wanglei','M'),(002, 'zhaotong','F'),(003,'xiaoqin','F'),(004,'hanzheng','M'),(005,'hanyang','M'); 插入订单信息 mysql> insert into indent(order_ID,date,c_ID,g_ID,s_ID,ordernum) values('A01','2 014-9-1',1001,101,1,10),('A02','2014-9-10',1002,106,3,15),('A03','2014-9-13',100 3,104,3,6),('A04','2014-9-18',1004,108,2,16),('A05','2014-9-19',1005,110,5,12); mysql> insert into indent(order_ID,date,c_ID,g_ID,s_ID,ordernum) values('A06','2 014-9-20',1006,115,1,7),('A07','2014-9-20',1007,109,3,17),('A08','2014-9-21',100 8,113,2,6),('A09','2014-9-26',1009,118,3,7),('A10','2014-9-26',1010,120,1,3); mysql> insert into indent(order_ID,date,c_ID,g_ID,s_ID,ordernum) values('A11','2 014-9-29',1001,114,4,7),('A12','2014-9-29',1002,115,4,1),('A13','2014-10-1',1003 ,102,2,6),('A14','2014-10-1',1010,111,4,7),('A15','2014-10-2',1005,101,1,3); 代码略多
woai代码 2014-10-18
  • 打赏
  • 举报
回复
补充一下我的代码:
mysql> update salesclerk,(select s_ID,sum(total) as sale from indent where month
(date)='09' group by s_ID) as result
-> set salesclerk.sale=result.sale
-> where (salesclerk.s_ID=result.s_ID);
这是把订单中9月每个售货员的销售额写进售货员表sale中
排名我不会弄,是手动插入的,只知道可以这样查他们的排名(s_ID=2售货员)
select count(1) as rank from salesclerk where sale >= (select sale from salesclerk where s_ID = 2)
ACMAIN_CHM 2014-10-18
  • 打赏
  • 举报
回复
不要贴图,最好直接贴文本的测试数据以供分析。 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧