- ベストアンサー
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 も試しましたが同じようにエラーになりました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブルにないフィールド名(c)は使用できません ORDER BY a,IIF(IsNull(b), 0, 1) としてください
その他の回答 (1)
次のような [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 したらどうでしょうか?
お礼
ありがとうございました。 これで解決いたしました。