0

計算を実行し、結果を列の 1 つに保存する 8 つのクエリがあります。

各クエリの列ヘッダーは同じ構造に従います。

CompanyYearAssetID, CompanyName, AssetName, Year, DatapointID, NameOfWhateverWasCalculated

各計算では、同じ DatapointID が結果に割り当てられます。例えば;

CompanyYearAssetID, CompanyName, AssetName, Year, DatapointID, ReservoirOIL
10001             , CompanyA   , Asset1   , 2011, 105014     , 5
10002             , CompanyB   , Asset1   , 2011, 105014     , 3
10003             , CompanyC   , Asset1   , 2011, 105014     , 0

計算列の名前とその DatapointID は次のとおりです。

  • UnallocatedOIL 105014
  • ウェルワークオイル 105015
  • リザーバーOIL 105016
  • 年次シャットダウンOIL 105017
  • 失敗計画外PlantOIL 105018
  • PlantPlannedMaintenanceOIL 105019
  • エクスポートオイル 105020
  • MarketOIL 105039

理想的には列ヘッダーを使用して、すべての結果を 1 つのテーブルに取得するクエリを作成したい

CompanyYearAssetID, DatapointID, DatapointValue

これをどのように構成するか、誰にも手がかりがありますか?

必要に応じて、ここに 8 つのクエリ名を示します。

  1. PE_Field_UnallocatedOIL
  2. PE_Field_WellworkOIL
  3. PE_Field_ReservoirOIL
  4. PE_Field_AnnualShutdownOIL
  5. PE_Field_FailureUnplannedPlantOIL
  6. PE_Field_PlantPlannedMaintenanceOIL
  7. PE_Field_ExportOIL
  8. PE_Field_MarketOIL
4

1 に答える 1

0

クエリ 1 とクエリ 2 の両方が同じデータを返す場合、このように

CompanyYearAssetID, CompanyName, AssetName, Year, DatapointID, ReservoirOIL
10001             , CompanyA   , Asset1   , 2011, 105014     , 5
10002             , CompanyB   , Asset1   , 2011, 105014     , 3
10003             , CompanyC   , Asset1   , 2011, 105014     , 0


SELECT * FROM (
   Select * from Query1
   UNION ALL
   Select * from Query2)

したがって、このクエリの結果は次のようになります

CompanyYearAssetID, CompanyName, AssetName, Year, DatapointID, ReservoirOIL
10001             , CompanyA   , Asset1   , 2011, 105014     , 5
10002             , CompanyB   , Asset1   , 2011, 105014     , 3
10003             , CompanyC   , Asset1   , 2011, 105014     , 0
10001             , CompanyA   , Asset1   , 2011, 105014     , 5
10002             , CompanyB   , Asset1   , 2011, 105014     , 3
10003             , CompanyC   , Asset1   , 2011, 105014     , 0

通常のテーブルのようにクエリを実行します

 SELECT * FROM (
       Select * from Query1
       UNION ALL
       Select * from Query2)
where Year = 2011 AND ReservoirOIL > 0
于 2012-08-30T14:10:27.030 に答える