• ベストアンサー

accessでDISTINCT 句と矛盾

IIFで置き換えをした結果をソートしようとしましたが、 SELECT DISTINCT a,IIF(IsNull(b), 0, 1) AS c FROM shain ORDER BY a,c [Microsoft][ODBC Microsoft Access Driver] ORDER BY 句 (c) が DISTINCT 句と矛盾しています。 というエラーになりました。 正しいSQLを教えてください。 SELECT DISTINCT a,IIF(IsNull(b), 0, 1) AS c FROM shain ORDER BY a,b も試しましたが同じようにエラーになりました。

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

テーブルにないフィールド名(c)は使用できません ORDER BY a,IIF(IsNull(b), 0, 1) としてください

kinuasa
質問者

お礼

ありがとうございました。 これで解決いたしました。

その他の回答 (1)

noname#22222
noname#22222
回答No.2

次のような [shain] テーブルでチクッとテストしてみました。 [shain] ID  A   B 1   4   1 2   3   1 3   3    4   1   1 5   1   1 Private Sub コマンド0_Click()   Dim I    As Integer   Dim N    As Integer   Dim Datas() As String   Dim strSQL As String   strSQL="select DISTINCT a, b from (SELECT * FROM shain ORDER BY a, not Len(B & '')>0)"    Datas() = DBLookups(strSQL)   N = UBound(Datas())   For I = 0 To N     Debug.Print Datas(I)   Next I End Sub 1,1 3, 3,1 4,1 と、ID=4、5 の重複を外し、かつ、ソートしたいのでしょうか? であれば、一度ソートしてから DISTINCT したらどうでしょうか?

関連するQ&A