這是我做測試,請大俠們幫忙看看錯在哪?謝了
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 test1 
 @a numeric(10,0)
as
select 工號,姓名, select@a=
case when (select 遲到 from test2) >5 THEN 全勤獎-30 else 全勤獎 end 
,@a /30 as r from test3
GO

解决方案 »

  1.   

    select 工號,姓名,全勤獎 = case when (select 遲到 from test2) >5 THEN 全勤獎-30 else 全勤獎 end ,全勤獎/30 as r from test3
      

  2.   

    可以啊,把查询放到存储过程里
    create proc test 
    as
    select 工號,姓名,全勤獎 = case when (select 遲到 from test2) >5 THEN 全勤獎-30 else 全勤獎 end ,全勤獎/30 as r from test3
    go