1

ストアド プロシージャで一時テーブルを作成して呼び出しようとしています。私が達成しようとしているのは、年間データと四半期データを組み合わせることです。例: 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

これはコードの結果です

4

0 に答える 0