gpt4 book ai didi

tsql - T-SQL - 在存储过程中的临时表中填充数据。

转载 作者:行者123 更新时间:2023-12-01 05:34:29 25 4
gpt4 key购买 nike

我需要有关我目前正在处理的存储过程的帮助。基本上存储过程工作正常并获取我需要的数据。我想保留此功能并在存储过程中添加新的临时表,并用我获得的数据填充此临时表。

我不知道我应该在哪里/以及如何在我的特定存储过程中使用 INSERT INTO SELECT 语句或 SELECT INTO。下面我提交了我的简化存储过程:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_GetHourReportData]

@dateFrom SMALLDATETIME,
@dateTo SMALLDATETIME,
@hourFrom INT,
@hourTo INT

AS
BEGIN

SET NOCOUNT ON;

CREATE TABLE tempTable
(
-- fields
)

IF (DATEDIFF(DAY, @dateFrom, @dateTo) = 0)
BEGIN
SELECT -- fields
FROM -- tables
WHERE -- conditions
END
ELSE IF (DATEDIFF(DAY, @dateFrom, @dateTo) = 1)
BEGIN
SELECT -- fields
FROM -- tables
WHERE -- conditions
UNION ALL
SELECT -- fields
FROM -- tables
WHERE -- conditions
END
ELSE
BEGIN
SELECT -- fields
FROM -- tables
WHERE -- conditions
UNION ALL
SELECT -- fields
FROM -- tables
WHERE -- conditions
UNION ALL
SELECT -- fields
FROM -- tables
WHERE -- conditions
END
END

谢谢。任何帮助将不胜感激。

最佳答案

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_GetHourReportData]

@dateFrom SMALLDATETIME,
@dateTo SMALLDATETIME,
@hourFrom INT,
@hourTo INT

AS
BEGIN

SET NOCOUNT ON;

CREATE TABLE #tempTable --notice the #
(
-- fields
)

IF (DATEDIFF(DAY, @dateFrom, @dateTo) = 0)
BEGIN
insert into #tempTable
SELECT -- fields
FROM -- tables
WHERE -- conditions
END
ELSE IF (DATEDIFF(DAY, @dateFrom, @dateTo) = 1)
BEGIN
insert into #tempTable
SELECT -- fields
FROM -- tables
WHERE -- conditions
UNION ALL
SELECT -- fields
FROM -- tables
WHERE -- conditions
END
ELSE
BEGIN
insert into #tempTable
SELECT -- fields
FROM -- tables
WHERE -- conditions
UNION ALL
SELECT -- fields
FROM -- tables
WHERE -- conditions
UNION ALL
SELECT -- fields
FROM -- tables
WHERE -- conditions
END
END

关于tsql - T-SQL - 在存储过程中的临时表中填充数据。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20329006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com