none
Distinct使用時によるorder by句の制約 RRS feed

  • 質問

  • SQL server 2005 Express Edi.にて以下のようなクエリーを試しました

    Table A

    PK    Name    Update

    ---------------------------------

    1     AAA    2/1

    2     BBB    2/15

    3     CCC    2/3

    4     DDD   2/18

     

    Table B

    PK   CodeA   Name2

    ---------------------------------

    1    1      XX

    2    1      YY

    3    3      ZZ

    4    3      11

    5    3      22

    6    4      33

    select A.PK, A.Name , B. Name2

    from Table A as A inner join Table B as Bon A.PK=B.CodeA

    当然、結果としては

    A.PK A.Name  B.Name2

    ------------------------------

    1     AAA   XX

    1     AAA   YY

    3     CCC   XX

    3     CCC   11

    3     CCC   22

     4     DDD  33

    となります。さらにA.PKは重複レコードを排除するため

    select Distinct A.PK from Table A as A inner join Table B as Bon A.PK=B.CodeA

    とし

    A.PK

    -------

    1

    3

    4

    も得ることができました

    最後に、このA.PKをA.Updateの順序に並べようと

    select Distinct A.PK from Table A as A inner join Table B as Bon A.PK=B.CodeA Order by A.Update

    とするとSelect Distinct 使用時には Order by 句にA.PKを指定しなければならないという制限に引っかかり結果を得ることができません。

    この結果を得るためのSQLクエリーはどのようにすればよろしいのでしょうか? 

    2007年3月5日 9:06

すべての返信