Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在存储过程中使用临时表_Sql_Sql Server 2008_Devexpress_Temp Tables - Fatal编程技术网

Sql 在存储过程中使用临时表

Sql 在存储过程中使用临时表,sql,sql-server-2008,devexpress,temp-tables,Sql,Sql Server 2008,Devexpress,Temp Tables,我试图创建并调用存储过程中的临时表。我试图实现的是将年度数据与季度数据相结合。例如:我有一个字段,其中包含2013年的数据。为了得到年度数据,我按年度分组,为了得到季度数据,我按季度分组。我通常会使用一个视图作为年度存储,并在季度存储过程中调用该视图。我之所以尝试这样做,是因为我们不能根据开发人员使用视图。为了解决这个问题,我制作了一个包含年度数据的临时表(见下面的代码)。当我执行这个时,它工作正常,但当我尝试将存储过程添加到Devexpress时,它不包含任何字段。这是我第一次尝试临时表,所以

我试图创建并调用存储过程中的临时表。我试图实现的是将年度数据与季度数据相结合。例如:我有一个字段,其中包含2013年的数据。为了得到年度数据,我按年度分组,为了得到季度数据,我按季度分组。我通常会使用一个视图作为年度存储,并在季度存储过程中调用该视图。我之所以尝试这样做,是因为我们不能根据开发人员使用视图。为了解决这个问题,我制作了一个包含年度数据的临时表(见下面的代码)。当我执行这个时,它工作正常,但当我尝试将存储过程添加到Devexpress时,它不包含任何字段。这是我第一次尝试临时表,所以如果有任何错误或更好的方法来写这个,请让我知道。谢谢你的帮助

CREATE TABLE #StdEcoYearlyData1(
  CaseCaseId int , 
  EcoYear int, 
  NetInvY  float, 
  NDCashY  float, 
  DiscCashY  float, 
  GrossGasY  float, 
  GrossOilY  float, 
  NetProdTaxY  float, 
  NetOpCostY  float,
  WellCostY  float, 
  NetOilY  float, 
  CoNetRevOilY  float, 
  CoNetRevGasY  float, 
  NetGasY  float, 
  NetLocalTaxY  float, 
  NetFixedCostY  float, 
  NetOtherCostY  float, 
  NetProfitY  float, 
  NetTransCostY  float
)

INSERT INTO #StdEcoYearlyData1 (
  CaseCaseId   , 
  EcoYear  , 
  NetInvY  , 
  NDCashY  , 
  DiscCashY  , 
  GrossGasY  , 
  GrossOilY  , 
  NetProdTaxY  , 
  NetOpCostY  ,
  WellCostY  , 
  NetOilY  , 
  CoNetRevOilY  , 
  CoNetRevGasY  , 
  NetGasY  , 
  NetLocalTaxY  , 
  NetFixedCostY  , 
  NetOtherCostY  , 
  NetProfitY  , 
  NetTransCostY  )
SELECT  rcl.CaseCaseId AS CaseId,  YEAR(rce.ecodate) as EYear,
  SUM(rce.NetInv) AS NetInvY, SUM(rce.NDCash) AS NDCashY, 
  SUM(rce.DiscCash) AS DiscCashY, SUM(rce.GrossGas) AS GrossGasY, 
  SUM(rce.GrossOil) AS GrossOilY, SUM(rce.NetProdTax) AS NetProdTaxY, 
  SUM(rce.NetOpCost) AS NetOpCostY, SUM(rce.WellCost) AS WellCostY, 
  SUM(rce.NetOil) AS NetOilY, SUM(rce.CoNetRevOil) AS CoNetRevOilY, 
  SUM(rce.CoNetRevGas) AS CoNetRevGasY, SUM(rce.NetGas) AS NetGasY, 
  Sum(rce.NetLocalTax) as NetLocalTaxY, Sum(rce.NetFixedCost) as NetFixedCostY, 
  Sum(rce.NetOtherCost) as NetOtherCostY, Sum(rce.NetProfit) as NetProfitY, 
  Sum(rce.NetTransCost) as NetTransCostY
from PhdRpt.RptCaseEco rce
   INNER JOIN PhdRpt.ReportCaseList rcl ON 
     rce.ReportRunCaseId = rcl.ReportRunCaseId
 group by rce.reportruncaseid,rcl.CaseCaseId,year(rce.EcoDate)


 select 
  rcl.CaseCaseId AS CaseId, 
  EcoYear  , 
  DATEPART(qq,rce.EcoDate) as Quarter,
  NetInvY  , 
  NDCashY  , 
  DiscCashY  , 
  GrossGasY  , 
  GrossOilY  , 
  NetProdTaxY  , 
  NetOpCostY  ,
  WellCostY  , 
  NetOilY  , 
  CoNetRevOilY  , 
  CoNetRevGasY  , 
  NetGasY  , 
  NetLocalTaxY  , 
  NetFixedCostY  , 
  NetOtherCostY  , 
  NetProfitY  , 
  NetTransCostY,  YEAR(rce.EcoDate) AS EcoYear, 
  SUM(rce.NetInv) AS NetInvSum, SUM(rce.NDCash) AS NDCashSum, 
  SUM(rce.DiscCash) AS DiscCashSum, SUM(rce.GrossGas) AS GrossGasSum, 
  SUM(rce.GrossOil) AS GrossOilSum, SUM(rce.NetProdTax) AS NetProdTaxSum, 
  SUM(rce.NetOpCost) AS NetOpCostSum, SUM(rce.WellCost) AS WellCostSum, 
  SUM(rce.NetOil) AS NetOilSum, SUM(rce.CoNetRevOil) AS CoNetRevOilSum, 
  SUM(rce.CoNetRevGas) AS CoNetRevGasSum, SUM(rce.NetGas) AS NetGasSum, 
  Sum(rce.NetLocalTax) as NetLocalTaxSum, Sum(rce.NetFixedCost) as NetFixedCostSum, 
  Sum(rce.NetOtherCost) as NetOtherCostSum, Sum(rce.NetProfit) as NetProfitSum, 
  Sum(rce.NetTransCost) as NetTransCostSum
 from PhdRpt.RptCaseEco rce
   INNER JOIN PhdRpt.ReportCaseList rcl ON 
     rce.ReportRunCaseId = rcl.ReportRunCaseId 
   INNER JOIN #StdEcoYearlyData1 sey on
    rce.ReportRunCaseId =  sey.CaseCaseId and 
    year(rce.ecodate) = sey.EcoYear
  group by 
  EcoYear  , 
  NetInvY  , 
  NDCashY  , 
  DiscCashY  , 
  GrossGasY  , 
  GrossOilY  , 
  NetProdTaxY  , 
  NetOpCostY  ,
  WellCostY  , 
  NetOilY  , 
  CoNetRevOilY  , 
  CoNetRevGasY  , 
  NetGasY  , 
  NetLocalTaxY  , 
  NetFixedCostY  , 
  NetOtherCostY  , 
  NetProfitY,
  NetTransCostY, 
  rcl.CaseCaseId,
  YEAR(rce.EcoDate),
  DATEPART(qq,rce.EcoDate)

  order by rcl.CaseCaseId


drop table #StdEcoYearlyData1

不必创建临时表然后插入,您只需执行
选择即可。。。在您的查询中选择并同时插入到#StdEcoYearlyData1…
。这句话“当我尝试将存储过程添加到Devexpress时,它不包含任何字段。”不清楚。@Dan Bracuk我将存储过程添加到数据集,但它不包含任何字段。将存储过程添加到何处?您是否尝试执行此存储过程?它执行得很好,但在Devexpress中将其添加到数据集时不会填充任何数据。