整理一个asp多级树型分类问题的解决方法
来源:csdn 发布时间:2007-10-17 18:38:00
问题:
1.一个销售系统,设有各级代理商,每个代理商的表是这样设计的
数据库结构
表1: 代理商资料表
[id] 自动编号 编号
[lishu] 长整型 隶属字段
[xiaoshoue] 长整型 销售额
[ticheng] 长整型 提成
[add_date] 日期/时间 代理商添加时间
要求
1.让代理商分级,指出某个代理商可以算出他的上级代理商和下级代理商.
2. 提成的比例按照销售额的多少来定,销售额2000以下的提成比例是20%,销售额在2000到6000之间的提成比例是25%,销售额在6000到 18000之间的提成比例是30%,销售额在18000到30000之间的提成比例是35%,销售额在30000到60000之间的提成比例是40%,销 售额在60000以上的提成比例是45%.
3.提成是这样算的,比如说第一个月的销售额是2000,那么他的提成是2000*20%= 400,然后如果第二个月的销售额又是2000,那么他的总销售额就是第一个月加第二个月的2000+2000=4000,因为4000界于2000到 6000之间,所以他这个月的提成比例应该是25%,那么他这个月的提成是本月的销售额乘以25%,就是2000*25%=500
4.下 级代理商新增的销售额要添加到他上级代理商的销售额里面,比如说A为一级代理商,B为A的下级代理商,也就是二级代理商,B这个月的销售额是2000,A 这个月的销售额也是3000,但因为B是A的下级代理商,所以A本月的销售额就是B本月的的销售额加上他自己本月的销售额.2000+3000=4000
但是A本月的提成不应该是5000乘以25%,应该是他本月自己的销售额3000*25%然后加上他的下级代理商给他增加的提成差额2000*25%- 2000*20%整个算下来A这个月的应得提成就是3000*25%+2000*25%-2000*20%=5000*25%-2000*20%= 850,但是A不可能只有B一个代理商,他和它其它所有的下级代理商的提成差额都是这样计算的.如果A这个月自己的销售额为0,B的销售额是2000那么 A这个月的应得提成就是2000*20%-2000*20%=0,也就是如果A和B同一销售额段的话A就不会从B那里得到差额提成.但A不可能就B一个下 级代理,所以A的就算自己这个月本身销售额为0,他有2个下级代理商,并且每个下级代理商销售额为2000,他这个月的应得提成就是4000*25%- 2000*20%-2000*20%=200
5.如果某代理商的下级代理商有1个销售额在6000以上的,那么他们属于同一个提成比例段的,所以他们之间没有差额提成,但是如果有3个下级代理商的销售额在60000以上的,那么他可以从这3个下级代理商各自的多余60000的部分的5%的提成.
还有一些其它详细的要求,我先不说了,其中1.2.3.5和4的部分功能我已经实现了.主要是4的算法太难,感觉又要重新设计数据结构似的,要不就算我一点 一点做出来,效率一定会很慢的,大家看看要求4的具体实现有没有比较经典的算法和解决方案,谢谢指点了,如果实在是太麻烦偶短时间学不会的话,这个工程偶 就不做了,就算以前编的部分是自己锻炼自己了.
烦劳各位老大都费一些心思,真是太感谢了.
我知道是用递归,可是打开每个下代理商的数据库要打开好多次呀,这样性能非常差的,应该先把本身的记录集存储到数组里,然后以后调用,再分别打开每个下级代理商的记录集,经过计算和第一次的记录集比较和计算
我都乱了,想不出来到底建立多少个RECORDSET,递归多少次,怎么让一个数据同时更新到两个记录集中,好多麻烦的东西,没有头绪了。
这个功能是不是很好的实现呀,我感觉怎么也得用存储过程或者数组之类的解决.我现在的作法是同时打开两个数据库链接,但是这样操作的同错几率很大,最好这样 来,先打开一个链接,取出所需数据,存进数组.再打开第二个链接,循环上面的数组,进行操作.如果需要更新第一个链接,在最后进行更新,原理知道了,就是写不出来.复杂的递归算法我真的弄不出来,尤其是什么FOR循环里面还弄着几个IF嵌套,我看一段就不知道数据到底是哪个状态了,请问一下这样的情况又没 有什么分析上的技巧呀 .
猜你喜欢
- 前言本系列文章将依据官方文档讲解Webots R2022b的使用教程(Windows10环境)。一、Webots是什么?Webots是一个开
- 前言最近参加了datawhale的组队学习活动,在组队学习动员下,开始通过强迫自己输出来实现更好的输入与处理,6-15开始自己的第一次文章发
- 前言爬虫和反爬虫日益成为每家公司的标配系统。爬虫在情报获取、虚假流量、动态定价、恶意攻击、薅羊毛等方面都能起到很关键的作用,所以每家公司都或
- 本文实例为大家分享了python实现飞机大战的具体代码,供大家参考,具体内容如下初学Python,写了一个简单的Python小游戏。师出bi
- 如下所示:i=0sum1=0sum2=0while i<=100: if i%2==0: sum
- 教程使用的版本是2019.1新版本安装激活可以参考此篇教程,通用版!一、go安装1、建议去go语言中文网下载,网址:https://stud
- 虽然我们一直使用书籍搜索的示例表单,并将起改进的很完美,但是这还是相当的简陋: 只包含一个字段,q。这简单的例子,我们不需要使用Django
- 最近关于浏览器的最重要的事情就是IE的极光0day漏洞了,这个漏洞导致包括Google在内的多家美国公司受到黑客的攻击,当然也有很多网站被黑
- Software as a service 软件即服务,21世纪开始兴起的一种完全创新的软件应用模式。客户通过互联网向厂商定购所需的应用软件
- 一、前言数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。二、分片(类似分
- 乱码问题破解压缩包时候会存在中文乱码问题!1:直接使用Everything搜索出要修改的库文件 zipfile.py ,并用notepad+
- 目录1. 前言2. 介绍及安装3. 实战一下3-1 创建爬虫项目3-2 创建爬虫 Ai
- 今天给大家分享的主题是用百度的接口实现图片的文字识别。1.环境和配置要求整体是用Python实现,所需要使用的第三方库包括aip、PIL、k
- 1.前台ajax数据提交<form id="login_form" action="" met
- 本文主要介绍了np.where()[0] 和 np.where()[1]的具体使用,以及np.where()的具体用法,废话不多说,具体如下
- 目录1、吃金币2、打乒乓3、滑雪4、并夕夕版飞机大战5、打地鼠6、小恐龙7、消消乐8、俄罗斯方块9、贪吃蛇10、24点小游戏11、平衡木12
- python将字典内容写入json文件的方法:我们可以先使用json.dumps()函数将字典转换为字符串;然后再将内容写入json即可。j
- 以发布目录为例:<OBJECT ID="agobjOraSession" RUNAT=&quo
- Q. How can I restrict access to my SQL Server so that it only allows c
- 函数栈帧我们的代码会被编译成机器指令并写入到可执行文件,当程序执行时,可执行文件被加载到内存,这些机器指令会被存储到虚拟地址空间中的代码段,