我已经开始处理存储过程以处理一些我需要做的计算。要点是:
Create Table #Temp
(
ClientName varchar,
ClientAddress varchar,
Units1 int,
Units2 int,
UnitsUsed int,
UnitsSpec int
)
Insert into #Temp (ClientName, ClientAddress, Units1, Units2)
Select
x.ClientName, x.ClientAddress, y.Units1, y.Units2
From
tblClients x
Left Join
tblClientUnits y On x.clientId = y.clientid
select语句有点复杂,出于可读性考虑,我正在尝试简化它。
到目前为止,所有内容都可以正常工作,因此我创建了一个临时表,插入了所有信息,我现在想做的是针对#Temp表中的最后两列,我需要做一些计算,所以我正在尝试以某种方式重新插入临时表UnitsUsed
,该表将是Units1 + Units2的总数,并且对UnitsSpec做同样的事情,它将是Units1 + Units2 / 3
什么是这样做的好方法?这可行吗?
编辑样本数据-所需的最终结果:
ClientName ClientAddress Units1 Units2 UnitsUsed UnitsSpec
---------------------------------------------------------------------------
Bob S 11 Jude Lane 10 20 30 10
答案 0 :(得分:1)
在您的INSERT语句之后,像这样运行UPDATE语句:
UPDATE #Temp SET UnitsUsed = Units1 + Units2, UnitsSpec = Units1 + (Units2 / 3);
答案 1 :(得分:1)
您可以与其他插入内容同时进行
Create Table #Temp (
ClientName varchar,
ClientAddress varchar,
Units1 int,
Units2 int,
UnitsUsed int,
UnitsSpec int
)
Insert into #Temp (
ClientName,
ClientAddress,
Units1,
Units2,
UnitsUsed,
UnitsSpec
)
Select x.ClientName
, x.ClientAddress
, y.Units1
, y.Units2
, (y.Units1 + y.Units2)
, (y.Units1 + y.Units2) /3
from tblClients x
left join tblClientUnits y on x.clientId = y.clientid
答案 2 :(得分:0)
在您的思考中,将“重新插入”替换为“更新”。
或者只是在初始INSERT..SELECT中进行计算。