我有一张大纸,我需要删除所有的内容.当我尝试在没有VBA的情况下简单地清除它时,它进入无响应模式.使用宏时,例如:
Sub ClearContents ()
Application.Calculation = XlManual
Application.ScreenUpdating = False
Sheets("Zeroes").Cells.ClearContents
Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)
它也没有回应.最快的方法是什么?
我对前几年的数据运行了以下查询,花了3个小时,今年花了13天.我不知道为什么会这样.任何帮助将非常感激.
我刚刚测试了旧SQL服务器中的查询,它可以在3小时内完成.因此,问题必须与我创建的新SQL服务器有关.你有任何想法可能是什么问题?
查询:
USE [ABCJan]
CREATE INDEX Link_Oct ON ABCJan2014 (Link_ref)
GO
CREATE INDEX Day_Oct ON ABCJan2014 (date_1)
GO
UPDATE ABCJan2014
SET ABCJan2014.link_id = LT.link_id
FROM ABCJan2014 MT
INNER JOIN [Central].[dbo].[LookUp_ABC_20142015] LT
ON MT.Link_ref = LT.Link_ref
UPDATE ABCJan2014
SET SumAvJT = ABCJan2014.av_jt * ABCJan2014.n
UPDATE ABCJan2014
SET ABCJan2014.DayType = LT2.DayType
FROM ABCJan2014 MT
INNER JOIN [Central].[dbo].[ABC_20142015_days] LT2
ON MT.date_1 = LT2.date1
Run Code Online (Sandbox Code Playgroud)
使用以下数据结构:
ABCJan2014(7000万行 - 没有独特的标识符 - Link_ref和date_1在一起是唯一的)
Link_ID nvarchar (17)
Link_ref int
Date_1 smalldatetime
N int
Av_jt int
SumAvJT decimal(38,14) …Run Code Online (Sandbox Code Playgroud) 我在调用我创建的函数时遇到问题.非常感激任何的帮助.这是功能:
CREATE FUNCTION myFunction
(
@T DECIMAL(38,14),
@R DECIMAL (38,14),
@S DECIMAL(38,14)
)
RETURNS DECIMAL(38,14)
AS
BEGIN
RETURN
SQRT(
ABS(
(@T/(@R-1))-((@R/(@R-1))*(@S*@S))))
/@S
END
GO
Run Code Online (Sandbox Code Playgroud)
然后我需要在表上使用此函数.这是填写'CV'列.这需要处理以下列:
@T Decimal (38,14) as SumSqJT
@R Decimal (38,14) as "SumObs"
@S Decimal (38,14) as "AvJT"
Run Code Online (Sandbox Code Playgroud)
编辑:
这是我用过的功能
Use [Neutral Month 20132014 ALL]
SELECT
dbo.MyFunction(SumSqJT1, SumObs, AvJT) AS FunctionResult
FROM
Essex_Data_1314
WHERE
SumObs > 1
Run Code Online (Sandbox Code Playgroud)
这会创建数字列表,但是我需要更新表Essex_Data_1314中的列CV,而不仅仅是创建数字列表.我怎么做?
这已经解决了这个问题:
Use [Neutral Month 20132014 ALL]
UPDATE
Essex_Data_1314
SET
CV = dbo.MyFunction(SumSqJT1, SumObs1, AvJT)
Run Code Online (Sandbox Code Playgroud)
注意:将所有内容都设置为DECIMAL或NUMERIC数据类型非常重要.否则会发生转换错误.
感谢JohnnyBell的帮助.
干杯.