楼主: ~贝贝~

[Tips] ITPUB“盛拓传媒杯”SQL数据库编程大赛最后一题,答题结束,进入评审期!

 关闭 [复制链接]
论坛徽章:
44
双鱼座
日期:2016-01-07 20:57:31奔驰
日期:2013-08-02 22:22:552013年新春福章
日期:2013-02-25 14:51:24迷宫蛋
日期:2013-01-29 22:12:11蛋疼蛋
日期:2013-01-07 15:50:53ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28紫蛋头
日期:2011-07-31 11:27:01蜘蛛蛋
日期:2011-06-14 14:20:33蛋疼蛋
日期:2011-06-03 19:39:27SQL大赛参与纪念
日期:2011-04-13 12:08:17
51#
发表于 2011-3-28 10:20 | 只看该作者
题目错了?
,rate           NUMBER NOT NULL ------ 该档的费率,乘以天数再乘以人数就是总费用
如果我统计20100101一次,有统计20100102的一次,----累计这两天的费用
再一起统计这两天的,总费用可能会不一致
----
所以乘以天数是不严密的,应该是累加
------ 该档的费率,乘以当天人数--当天费用,再累加区间内各天的费用 就是总费用

使用道具 举报

回复
论坛徽章:
0
52#
发表于 2011-3-28 10:34 | 只看该作者
原帖由 mychary 于 2011-3-28 10:20 发表
题目错了?
,rate           NUMBER NOT NULL ------ 该档的费率,乘以天数再乘以人数就是总费用
如果我统计20100101一次,有统计20100102的一次,----累计这两天的费用
再一起统计这两天的,总费用可能会不一致
----
所以乘以天数是不严密的,应该是累加
------ 该档的费率,乘以当天人数--当天费用,再累加区间内各天的费用 就是总费用

那是你的算法有问题

使用道具 举报

回复
论坛徽章:
8
玉兔
日期:2015-11-16 10:18:00铁扇公主
日期:2015-10-27 21:47:42九尾狐狸
日期:2015-12-11 22:31:15
53#
发表于 2011-3-28 10:39 | 只看该作者
原帖由 rollingpig 于 2011-3-28 08:26 发表
这是擂台赛而不是高考。
高考你答对了就行,擂台赛你要比别人答得更好。

象第二期,只要你能把结果算出来,性能不算太差,基本就算OK了。
第三第四期,你不只要得出结果,还要在得出结果的过程里显示出不一样的地方。


评分标准不是保密的么,严重怀疑泄密哦

使用道具 举报

回复
论坛徽章:
281
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-01-04 11:51:22蛋疼蛋
日期:2011-12-29 07:37:22迷宫蛋
日期:2011-12-26 14:19:41茶鸡蛋
日期:2011-11-17 09:20:52茶鸡蛋
日期:2011-11-10 22:42:38ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15茶鸡蛋
日期:2011-10-24 09:48:48ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47
54#
发表于 2011-3-28 11:38 | 只看该作者
原帖由 x4x 于 2011-3-28 10:34 发表

那是你的算法有问题

我认为51楼说的是对的,单个费率只针对人数,跟天数有什么关系,因为每人每天(每公司)只会产生一次服务,最终计算时天数列也早就被废弃了~~~

使用道具 举报

回复
论坛徽章:
44
双鱼座
日期:2016-01-07 20:57:31奔驰
日期:2013-08-02 22:22:552013年新春福章
日期:2013-02-25 14:51:24迷宫蛋
日期:2013-01-29 22:12:11蛋疼蛋
日期:2013-01-07 15:50:53ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28紫蛋头
日期:2011-07-31 11:27:01蜘蛛蛋
日期:2011-06-14 14:20:33蛋疼蛋
日期:2011-06-03 19:39:27SQL大赛参与纪念
日期:2011-04-13 12:08:17
55#
发表于 2011-3-28 12:04 | 只看该作者
原帖由 junsansi 于 2011-3-28 11:38 发表

我认为51楼说的是对的,单个费率只针对人数,跟天数有什么关系,因为每人每天(每公司)只会产生一次服务,最终计算时天数列也早就被废弃了~~~

谢谢你的认同。

问题.JPG (11.65 KB, 下载次数: 130)

问题.JPG

使用道具 举报

回复
论坛徽章:
4
ITPUB9周年纪念徽章
日期:2010-10-08 09:34:02SQL大赛参与纪念
日期:2011-04-13 12:08:17双黄蛋
日期:2011-09-10 18:29:28迷宫蛋
日期:2012-04-26 14:58:21
56#
发表于 2011-3-28 12:22 | 只看该作者
最后一期了,可累死了

SQL大赛第四期(lk-2010).rar

904 Bytes, 阅读权限: 11, 下载次数: 1

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
57#
发表于 2011-3-28 12:25 | 只看该作者
hehe
发现数据不合理

insert into service_rates values (1,1,1,1,1,20);
insert into service_rates values (1,1,2,2,2,15);
insert into service_rates values (1,1,3,3,3,10);
insert into service_rates values (1,1,4,4,99999999,5);

1个人的时候收 20
2个人收30
3个人还是30
4个人又20了

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
58#
发表于 2011-3-28 12:34 | 只看该作者
不可说,不可说
原帖由 junsansi 于 2011-3-28 11:38 发表

我认为51楼说的是对的,单个费率只针对人数,跟天数有什么关系,因为每人每天(每公司)只会产生一次服务,最终计算时天数列也早就被废弃了~~~

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
59#
发表于 2011-3-28 12:38 | 只看该作者
A,C都要统计,但是A只统计p_start_date 到 A的end_date期间的费用
C只统计c的start_date到p_end_date期间的费用


我去收今年的房租,可不管你住了10年还是刚住进来,收的就是今年的房租。

原帖由 mychary 于 2011-3-28 12:04 发表

谢谢你的认同。

使用道具 举报

回复
论坛徽章:
44
双鱼座
日期:2016-01-07 20:57:31奔驰
日期:2013-08-02 22:22:552013年新春福章
日期:2013-02-25 14:51:24迷宫蛋
日期:2013-01-29 22:12:11蛋疼蛋
日期:2013-01-07 15:50:53ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28紫蛋头
日期:2011-07-31 11:27:01蜘蛛蛋
日期:2011-06-14 14:20:33蛋疼蛋
日期:2011-06-03 19:39:27SQL大赛参与纪念
日期:2011-04-13 12:08:17
60#
发表于 2011-3-28 13:13 | 只看该作者
原帖由 rollingpig 于 2011-3-28 12:38 发表
A,C都要统计,但是A只统计p_start_date 到 A的end_date期间的费用
C只统计c的start_date到p_end_date期间的费用


我去收今年的房租,可不管你住了10年还是刚住进来,收的就是今年的房租。

CREATE TABLE service_rates ( -------收费标准,每个公司各不相同, 按人数段计费
       service_id     NUMBER NOT NULL REFERENCES services(service_id)
      ,company_id     NUMBER NOT NULL REFERENCES companies(company_id)
      ,上限NUMBER NOT NULL ------ 1,2,3,4表示1档,2档,3档,4档
      ,user_count_min NUMBER NOT NULL ------ 该档人数下限,1档从1开始
      ,user_count_max NUMBER NOT NULL ------ 该档人数上限,同样是闭合区间。最后一档不妨设为99999999
      ,rate           NUMBER NOT NULL ------ 该档的费率,乘以天数再乘以人数就是总费用
      ,PRIMARY KEY (company_id,service_id,category_id)
      );
问题是 尽管单个用户的时间段可以按你上面说的计算,但在不同的统计时间段内,人数可能不一样,(该档人数下限 上限)决定了费率不同,所以产生的费用不一样
rollingpig,请问,用你的程序, 累加一年中单天总费用总和 = 用一年的跨度计算的总费用 ?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表