收录日期:2019/10/22 14:23:00 时间:2016/06/06 10:24:38 标签:基础类
已兩天了,實在不知我這個存諸過程錯在哪,請大俠幫忙看看,先謝了!
表:
CREATE TABLE [test2] (
[工號] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL ,
[遲到] [numeric](10, 0) NULL ,
[曠工] [numeric](10, 0) NULL 
) ON [PRIMARY]
GO


CREATE TABLE [test3] (
[工號] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[姓名] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[全勤獎] [numeric](10, 0) NULL 
) ON [PRIMARY]
GO


插入數據:
insert into test2 select '1',5,3
insert into test3 select '1','測試',180
存諸過程:
CREATE PROCEDURE test6 
(
@a numeric(10,0)
)
as
select 工號,姓名, set@a=
case when (select top 1 遲到 from test2) >5 THEN 全勤獎-30 else 全勤獎 end 
,@a /30 as r from test3
GO
執行存諸過程後的錯誤提示:
Server: Msg 201, Level 16, State 4, Procedure test6, Line 0
Procedure 'test6' expects parameter '@a', which was not supplied.
我改用如下的方式,仍不行:
CREATE PROCEDURE test6 

select 工號,姓名, a1=
case when (select top 1 遲到 from test2) >5 THEN 全勤獎-30 else 全勤獎 end 
,a1 /30 as r from test3
GO
我實在想不出辦法了,在access中可以很輕松的實現類似的計算,難道在sql中真不能這樣實現不???
-----是这个意思吗?
select b.工號,b.姓名,case when a.[遲到]>5 then b.全勤獎-30 else b.全勤獎 end 
,case when a.[遲到]>5 then b.全勤獎-30 else b.全勤獎 end /30 as r from test2 a right join test3 b
on a.工號 = b.工號
是這個意思,因為這樣寫語句很多,所以我像access中的別名一樣,直接通過別名來計算,我試了,在查詢中不能直接用別名進行計算,所以我想用存諸過程是否可以實現
在access中:
    select a as b,b+1 as c from test 
這樣的方式是可以實現,但在sql中不知該怎樣實現
两种不同的数据库,应该有自己的特点
-- 
select a as b,b+1 as c from test 
在SQL中
要这样写
select a as b,a+1 as c from test
CREATE PROCEDURE test6 
(
@a numeric(10,0)
)
as
select 工號,姓名, 
(case when (select top 1 遲到 from test2) >5 THEN 全勤獎-30 else 全勤獎 end )/30 as r  from test3
GO

2004年下半年软考合格分数线各科均为45分!同喜!!! 这个版本何时出的哟,我下载了,但是怎么没听到大家说过呢? 如果实现两个服务器上的数据库同时更新??? 文件操作中的怪事!无法显示文件!用任何一文本编辑器打开不做任何操作保存后又可以正常显示! 两个局域网内的机器(只有局域网IP)如何互相访问?(不需要硬件投入) 请教:如何改变用户目录 如何导出sql server数据库到光盘 可直接查询 请问各位:MultiPage的高度怎样才能随控件的高度改变而改变? 哪位帮忙看看这个报表! 终于赶在新年之前拿到了五条裤衩,我亦将慢慢淡出VB版块,今后的一段时间我将主要出现在Delphi,C#版块,在此新年来临之际,祝大家新年快\0 纪念从业后的第一次迟到~~~!! 汉字问题? 怎样在Excal中的列中加入相同的字符? 最新建立汇编技术群 散分300,庆祝杭州下鹅毛雪 100/300 新手请教 散分300,庆祝杭州下鹅毛雪 200/300 关于outlook的问题,高手请进 扩展名VSD是什么文件? 分300,庆祝杭州下鹅毛雪 300/300 为什么我的DropDownList控件无法实现SelectedIndexChanged功能! vb.net 的登陆问题 这两天要去应聘了,可不知道游戏服务器端和客户端都做些什么,请指教 关于eclipse汉化问题 有关VB认正 这里有没有山西的兄弟姐妹? 真他×的郁闷——————散分 请教一个20号中断的子功能! 一个棘手的问题,在线解决就送分!!!! 关于windows2000server提供打印服务的问题,为什么其他机器使用了win2000server上的打印机,每次重启都要重新连一下server上的打印机才能