SQL Server 为此查询创建临时表

标签 sql sql-server temp-tables

我有这个查询:

DECLARE 
@ProjectID int = 3,
@Year int = 2010,
@MeterTypeID int = 1,
@StartDate datetime,
@EndDate datetime

SET @StartDate = '07/01/' + CAST(@Year as VARCHAR)
SET @EndDate = '06/30/' + CAST(@Year+1 as VARCHAR)

SELECT  tblMEP_Sites.Name AS SiteName, convert(varchar(10),BillingMonth ,101) AS BillingMonth, SUM(Consumption) AS Consumption
FROM tblMEP_Projects

JOIN tblMEP_Sites
ON tblMEP_Projects.ID = tblMEP_Sites.ProjectID

JOIN tblMEP_Meters
ON tblMEP_Meters.SiteID = tblMEP_Sites.ID

JOIN tblMEP_MonthlyData
ON tblMEP_MonthlyData.MeterID = tblMEP_Meters.ID

JOIN tblMEP_CustomerAccounts
ON tblMEP_CustomerAccounts.ID = tblMEP_Meters.CustomerAccountID

JOIN tblMEP_UtilityCompanies
ON tblMEP_UtilityCompanies.ID = tblMEP_CustomerAccounts.UtilityCompanyID

JOIN tblMEP_MeterTypes
ON tblMEP_UtilityCompanies.UtilityTypeID = tblMEP_MeterTypes.ID

WHERE tblMEP_Projects.ID = @ProjectID
AND tblMEP_MonthlyData.BillingMonth Between @StartDate AND @EndDate
AND tbLMEP_MeterTypes.ID = @MeterTypeID
GROUP BY BillingMonth, tblMEP_Sites.Name
ORDER BY month(BillingMonth)

我只想将其存储在临时表中,以便我可以用它做一些事情。如果任何人都可以包含在 SQL Server 中创建临时表的语法,那就太好了。

我尝试了不同的方法,但我迷失了,没有得到我想要的结果。

最佳答案

如果您只想在查询中创建一个临时表,以允许您对存入其中的结果执行某些操作,您可以执行如下操作:

DECLARE @T1 TABLE (
Item 1 VARCHAR(200)
, Item 2 VARCHAR(200)
, ...
, Item n VARCHAR(500)
)

在查询的顶部,然后执行

INSERT INTO @T1
SELECT
FROM
(...)

关于SQL Server 为此查询创建临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17600315/

相关文章:

python - 从 ms sql 迁移到 postgres 非 ascii 字符错误 python

mysql - 在mysql中动态引入记录

postgresql - 我需要在 PostgreSQL 中手动 VACUUM 临时表吗?

sql - 仅授予对 postgreSQL 中一个模式的访问权限

php - ZF2中的SQL查询语法错误

sql-server - MS Access 查询设计因与 SQL Server 的连接而挂起

sql-server - 如何在sql server 2005中获取x和y之间的日期表

php - if else 查询更新某些表列

php - 从表中获取多个条目并添加它们

sql-server - SQL Server 触发器 - 需要更改