プロが教えるわが家の防犯対策術!

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

も試しましたが同じようにエラーになりました。

A 回答 (2件)

テーブルにないフィールド名(c)は使用できません


ORDER BY a,IIF(IsNull(b), 0, 1)
としてください
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/07 19:14

次のような [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 したらどうでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A