sql查询员工入职多少天_sql 查询四舍五入_sql怎么四舍五入(35)

电脑杂谈  发布时间:2017-02-03 23:10:24  来源:网络整理

Declare @zyxh char(12),@kdks char(8)

DECLARE @DepotName char(10)

BEGIN TRAN

if not exists(select 摆药单号 from摆药单 where 状态='00' and 摆药单号=@PutMedNo)

begin

return 0

end

EXECUTE Sp_GetBillNo @QuitMedNo output,'D'

INSERT INTO [退药]([退药序号], [操作员], [退药时间], [退药说明])

VALUES(@QuitMedNo,@Operator,cast(getdate() as smalldatetime),@Intro)

if (@@error<>0 or @@rowcount=0)

begin

rollback transaction

raiserror('插入退药表失败',16,-1)

return 1

end

DECLARE PutMed_Cursor CURSOR FOR

SELECT DISTINCT A.处方号,A.处方序号,B.住院序号,B.科室,C.名称 as 摆药区 FROM 摆药单明细 A inner join 处方 B ON A.处方号 =B.处方号 AND A.处方序号=B.处方序号

INNER JOIN 摆药区 C ON B.摆药区=C.代码 WHERE A.摆药单号=@PutMedNo

OPEN PutMed_Cursor

FETCH NEXT FROM PutMed_Cursor INTO @PreRecipeNo, @PreRecipeXNo,@zyxh,@kdks,@DepotName

WHILE @@FETCH_STATUS = 0

BEGIN

EXEC usp_QuitBillDetail @QuitMedNo ,@PutMedNo,@PreRecipeNo,@PreRecipeXNo,@zyxh,@kdks,@fsks,@DepotName

--另一个存储过程

if (@@error<>0)

begin

rollback transaction

CLOSE PutMed_Cursor

--DEALLOCATE PutMed_Cursor

raiserror('更新退单处方明细失败',16,-1)

return 1

end

FETCH NEXT FROM PutMed_Cursor INTO @PreRecipeNo, @PreRecipeXNo,@zyxh,@kdks

END

Top

个人认为,偶写了这么久的SQL,只说语法很无聊,语句的涵义与灵活的组合很重要,下面这个是写的一个药品管理的存储过程的一句,很经典:

UPDATE 药房库存 SET 库存数量=库存数量-B.用量 FROM [药房库存] A ,

( Select sum(用量) as 用量,药品价码 FROM 处方项

WHERE 处方号=@RecipeNo AND 处方序号=@RecipeXNo

GROUP BY 药品价码

) BWHERE A.药品价码=B.药品价码 AND A.库房名称=@DepotName

这是一个参照B表将A表中库存一一修改,而B表中存在一个求和,A表也与B表关联,同时要满足A表条件。

Top

是的..SQL中应用的经典应该只考虑SQL查询的应用..

存储过程已经使用控制语法操作了,和别的程序设计语言设计算法没什么区别..

Top

gz

Top

very good 我一定收藏!!!


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-30385-35.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 李益青
      李益青

      其实今年以来国家实际上放了30000亿的水

    • 赵成侯
      赵成侯

      然后苏联海军菜打出我舰奉命撞击你舰的警告之后才撞击的

    • 刘崇龟
      刘崇龟

      毕竟有几百万人去取外国新娘了

    热点图片
    拼命载入中...