2

形式でデータの水平出力を取得しようとしています

クエリは次のとおりです。

SELECT RDT1.County_Name
      ,RDT1.DistributionNumber as Dist_No
      ,RDT1.Vac_Allocated
      ,RDT1.Priority,RDT2.DistributionNumber as Dist_No
      ,RDT2.Vac_Allocated as Vac_Allocated
      ,RDT3.DistributionNumber as Dist_No
      ,RDT3.Vac_Allocated as Vac_Allocated 
FROM Result_Distribution_Table AS RDT1
    ,Result_Distribution_Table AS RDT2
    ,Result_Distribution_Table AS RDT3 
WHERE RDT1.County_Name = RDT2.County_Name AND
      RDT1.DistributionNumber = 1 AND 
      RDT2.DistributionNumber = 2 AND 
      RDT3.DistributionNumber = 3 AND 
      RDT1.County_Name = RDT3.County_Name 
WHERE Solution_id= "10" 

このクエリを実行すると、応答が返されます

メッセージ 4104、レベル 16、状態 1、行 1
マルチパート識別子 "Solution_id" をバインドできませんでした。

Solution_idResult_Distribution_Table表の列です。

私が間違っていることと解決策を教えてください。

4

2 に答える 2

3

WHEREクエリごとに句を 1つだけ持つことができます。また、代わりに古いスタイルの結合を使用しないでくださいJOIN注:列の正しいテーブル エイリアスを入力しますsolution_id

SELECT RDT1.County_Name
      ,RDT1.DistributionNumber as Dist_No
      ,RDT1.Vac_Allocated
      ,RDT1.Priority,RDT2.DistributionNumber as Dist_No
      ,RDT2.Vac_Allocated as Vac_Allocated
      ,RDT3.DistributionNumber as Dist_No
      ,RDT3.Vac_Allocated as Vac_Allocated 
FROM Result_Distribution_Table RDT1 JOIN  Result_Distribution_Table RDT2
      ON RDT1.County_Name = RDT2.County_Name JOIN Result_Distribution_Table RDT3 
      ON RDT1.County_Name = RDT3.County_Name
WHERE RDT1.DistributionNumber = 1 AND 
      RDT2.DistributionNumber = 2 AND 
      RDT3.DistributionNumber = 3 AND 
      [...].Solution_id= "10"

追加:同じテーブルを 3 回使用していることに気付きました。その場合は、次と同じ結果を得ることができます。

SELECT County_Name
          ,DistributionNumber as Dist_No
          ,Vac_Allocated
          ,Priority,RDT2.DistributionNumber as Dist_No
          ,Vac_Allocated as Vac_Allocated
          ,DistributionNumber as Dist_No
          ,Vac_Allocated as Vac_Allocated 
FROM Result_Distribution_Table 
WHERE DistributionNumber IN (1,2,3) AND
          Solution_id= "10"
于 2012-12-04T18:14:06.737 に答える
0

問題は、クエリにテーブルがないためです。

クエリにテーブルを含めるのを忘れたようです。

于 2014-07-18T09:23:51.393 に答える