【发布时间】:2013-12-02 13:01:16
【问题描述】:
我需要有关我目前正在处理的存储过程的帮助。基本上存储过程可以正常工作并获取我所需的数据。我想保留这个功能并在存储过程中添加新的临时表,并用我得到的数据填充这个临时表。
我不知道在我的特定存储过程中应该在哪里/以及如何使用 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
谢谢。任何帮助将不胜感激。
【问题讨论】:
标签: tsql sql-insert temp union-all