为什么这句话会报错?
这句话报列名 'MCYL ' 无效,为什么?
select
DateStart as FYRQ ,
PharmacologicalCode as XMBH,
dbo.h_DocAdviceItems.ChargeItemName as XMMC,
dbo.h_DocAdviceItems.FeeTypeID as FLDM,
dbo.h_DocAdviceItems.Specification as YPGG,
dbo.h_DocAdviceItems.RetailPrice as JG,
[MCYL]=
case when dbo.h_DocAdviceItems.FeeTypeID =14 then cast((DateStopped -DateStart ) as int)
when dbo.h_DocAdviceItems.FeeTypeID <> 14 then cast((DateStopped -DateStart ) as int)*dbo.h_DocAdviceItems.DailyFrequency
end ,
JE = dbo.h_DocAdviceItems.RetailPrice*[MCYL]
from dbo.h_DocAdviceItems inner join dbo.b_ChargeItems
on dbo.h_DocAdviceItems.ChargeItemID=dbo.b_ChargeItems.ChargeItemID
where DocAdviceID=1158
[解决办法]
在MS SQL中,算列不能直接拿用。
[解决办法]
select
DateStart as FYRQ ,
PharmacologicalCode as XMBH,
dbo.h_DocAdviceItems.ChargeItemName as XMMC,
dbo.h_DocAdviceItems.FeeTypeID as FLDM,
dbo.h_DocAdviceItems.Specification as YPGG,
dbo.h_DocAdviceItems.RetailPrice as JG,
[MCYL]=
case when dbo.h_DocAdviceItems.FeeTypeID =14 then cast((DateStopped -DateStart ) as int)
when dbo.h_DocAdviceItems.FeeTypeID <> 14 then cast((DateStopped -DateStart ) as int)*dbo.h_DocAdviceItems.DailyFrequency
end ,
JE = dbo.h_DocAdviceItems.RetailPrice*
( case when dbo.h_DocAdviceItems.FeeTypeID =14 then cast((DateStopped -DateStart ) as int)
when dbo.h_DocAdviceItems.FeeTypeID <> 14 then cast((DateStopped -DateStart ) as int)*dbo.h_DocAdviceItems.DailyFrequency
end)
from dbo.h_DocAdviceItems inner join dbo.b_ChargeItems
on dbo.h_DocAdviceItems.ChargeItemID=dbo.b_ChargeItems.ChargeItemID
where DocAdviceID=1158
[解决办法]
或者
Select
*,
JG * MCYL As JE
From
(
select
DateStart as FYRQ ,
PharmacologicalCode as XMBH,
dbo.h_DocAdviceItems.ChargeItemName as XMMC,
dbo.h_DocAdviceItems.FeeTypeID as FLDM,
dbo.h_DocAdviceItems.Specification as YPGG,
dbo.h_DocAdviceItems.RetailPrice as JG,
[MCYL]=
case when dbo.h_DocAdviceItems.FeeTypeID =14 then cast((DateStopped -DateStart ) as int)
when dbo.h_DocAdviceItems.FeeTypeID <> 14 then cast((DateStopped -DateStart ) as int)*dbo.h_DocAdviceItems.DailyFrequency
end
from dbo.h_DocAdviceItems inner join dbo.b_ChargeItems
on dbo.h_DocAdviceItems.ChargeItemID=dbo.b_ChargeItems.ChargeItemID
where DocAdviceID=1158
) A
[解决办法]
roy_88(中国风_燃烧你的激情!!!) ( ) 信誉:100 Blog 加为好友 2007-04-05 17:27:21 得分: 0
这句话报列名 'MCYL ' 无效,为什么?
这一句很明显了MCYL是那个表的列(楼主改为数据就不会出错了)
改为12123数字或小数1.00
---------
,在於他的代肯定是不能改的撒。
最根本的原因是“算列不能直接拿用”。