2011-02-03 10 views
0

私は、2つの異なるテーブルで本質的に同じフィールド上で動作する2つのほぼ同じクエリを持っています。作品最初のクエリは、次のようになります。Access 2010 SQL - グループバイ/注文By競合

TRANSFORM Count(PA_20110126.Account) AS CountOfAccount 
SELECT PA_20110126.BuildingSegment, PA_20110126.BuildingGroup 
FROM PA_20110126 
GROUP BY PA_20110126.BuildingSegment, PA_20110126.BuildingGroup 
ORDER BY 
    Switch([PA_20110126].[BuildingSegment]='Residential',0, 
    [PA_20110126].[BuildingSegment]='Commercial',1, 
    [PA_20110126].[BuildingSegment]='Health',2, 
    [PA_20110126].[BuildingSegment]='Religious',3, 
    [PA_20110126].[BuildingSegment]='Other',4, 
    [PA_20110126].[BuildingSegment]='Government',5), 
    PA_20110126.BuildingGroup 
PIVOT PA_20110126.[PA Status] In ('CURRENT ', 'DEFAULT ', 
    'SATISFIED ', 'NOT SATISFIED '); 

2番目のクエリは、以下の、GROUP BY句と句の競合BY ORDERが言うエラーメッセージを表示して停止します。

TRANSFORM Count(d20110126.Account) AS CountOfAccount 
SELECT d20110126.BCSegment, d20110126.BCGroup 
FROM d20110126 
GROUP BY d20110126.BCSegment, d20110126.BCGroup 
ORDER BY 
    Switch([d20110126].[BCSegment]='Residential',0, 
    [d20110126].[BCSegment]='Commercial',1, 
    [d20110126].[BCSegment]='Health',2, 
    [d20110126].[BCSegment]='Religious',3, 
    [d20110126].[BCSegment]='Other',4, 
    [d20110126].[BCSegment]='Government',5), 
    d20110126.BCGroup 
PIVOT d20110126.Borough; 

2番目のクエリで競合エラーの原因は何ですか?

ありがとうございます!

答えて

3

あなたが言ったように、クエリは基本的に同じですので、問題はテーブル構造またはテーブルデータの違いによって引き起こされる必要があります。問題のフィールドについては、それらは同じデータ型であるように見えます(両方を同じ文字列のセットと比較しているため)、データ自体に問題があると推測しています。

「住宅」、「商業」、「健康」、「宗教」、「その他」、または「政府」に等しくないデータがd20110126.BCSegmentフィールドにあると推測しなければなりませんでした。 。その場合、Switchステートメントはその特定のレコードに対してNullを返します。

修正はどちらかになります

  1. あなたのデータをサニタイズ(他のいくつかの通過を確保することによってはすべてレコードはあなたがに対してチェックされている5つの値のいずれかを持っていたことを意味します)
  2. は、「デフォルトを追加しますスイッチ文が常に値を返すように、Switchステートメント(例:True, 6)に「Else」を設定します。
+0

あなたの洞察をいただきありがとうございます。あなたの最初のポイント(クエリとピボットビューを使用して)を確認しましたが、2つ目のポイントが機能しませんでした - 私はまだ同じエラーメッセージを受け取りました。私は自分の問題がテーブルの大きさに関係するかもしれないと思っています。私はまだ理解していません。レコードのフィールド数を減らしたクエリで(80万以上のレコードから)使用されたデータセットのサイズを縮小すると、クエリが機能しました。だから私は、データセットのサブセットを動作させることができますが、データセット全体を取得することはできません...それ以上の考えはありますか?ありがとう。 –

+0

すぐに気になることはありません。それでも問題が解決しない場合は、動作中のSQL文と動作していないSQL文を使って新しい質問をすることをお勧めします。 – mwolfe02