求SQL语句或者存储过程

flai 2013-04-22 10:14:26
背景:药房有5个配药窗口,分别是1至5号。当然,要考虑到以后可能会有调整到6个、7个的可能。
收费窗口打印发票时,自动打印“请到药房第N号窗口取药”。

现在要解决的就是这个N的赋值问题。要求要平均分配。比如说,1至5号窗口都开放的话,就是1,2,3,4,5,
1,2,3,4,5…………这样分配。

患者少的时候,比如说晚上,可能只有两个窗口开放,比如说1号窗口和5号窗口,那就1,5,1,5,1,5……这样

每个配药窗口配一台电脑,电脑自动打印机分配到本窗口的处方条码,配药师拿着条码去备药。

表名:
DrugWindow配药窗口(字段1:windowcode窗口号,字段2 IsActive)

两个字段都是整型,其中IsActive值是0的表示该窗口关闭,1表示开放。


求赋N值的SQL语句或存储过程。(可以另建一个表,如果需要)

...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2013-04-23
  • 打赏
  • 举报
回复
最简单的就是: select top 1 '请到药房第' + windowcode窗口号 + '号窗口取药' from DrugWindow where IsActive = 1 但是第一个窗后的工作量肯定是最多的,如果工作量安排要平均,那么你需要另外一个表,表中按顺序放入开放的窗口,从上往下取,如果一个窗口被占用了,那么从表中删除,如果又有空余了,在填入表内,放在最后。
wucanye 2013-04-22
  • 打赏
  • 举报
回复
1、如果不考虑有效窗口变化,比较简单,加张新的表,记录上次开药的窗口号(要是允许的话,直接在DrugWindow配药窗口表后面加上一个标识字段即可),下次再排号的时候,SELECT出有效的窗口号 比上次记录窗口大的第一个,更改标识指标,返回当前窗口号。 2、如果要考虑有效窗口的变化及平均分配人数到各窗口,可以新增一张表用来记录各个窗口,等待的人数。每次开发票时,查出,有效窗口中,等待人数最少的一个(按照窗口号排序),记录+1,然后返回窗口号
那城 2013-04-22
  • 打赏
  • 举报
回复
加张表,弄个标志位

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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