このディレクトリの索引
#  質問です。
#  MySQL5です。 
#  テーブルデータはDATE(YYYYMMの6けたのint型),CODE(varchar型),VALUE(varchar型) の3カラムからなります。
#  各日付順の降順にしたいのですが、スレッドのように、同じコードの場合、その下に日付順でソートしたいです。
#  言っていることが、よくわからなくてすみません。
#  
#  元テーブル 
#  DATE, CODE, VALUE 
#  .... 
#  20140401, 11, A 
#  20140402, 12, B 
#  20140403, 11, C 
#  20140404, 13, D 
#  20140405, 12, E 
#  20140406, 11, F 
#  .... 
#  
#  欲しい結果 
#  20140401, 11, A 
#  20140403, 11, C 
#  20140406, 11, F 
#  20140402, 12, B 
#  20140405, 12, E 
#  20140404, 13, D 
#  
#  宜しくお願い致します。 
#  
#  
#  879 名前:NAME IS NULL [sage]: 2014/04/25(金) 17:41:21.67 ID:??? 
#  >>877
#  どうも質問が明確じゃないけど、
#  insert into tname select 〜
#  の形式にすればとりあえず解決しそうな話に見える。
#  
#  >>878
#  order by code, date ということ? 
#  
#  
#  880 名前:NAME IS NULL []: 2014/04/25(金) 17:47:38.30 ID:+Fb19Efw (3)
#  879
#  分かりずらい
#  欲しい結果にしてしまいました。
#  
#  第1キーは、日付です。
#  
#  元テーブル 
#  DATE, CODE, VALUE 
#  20140401, 13, A 
#  20140402, 11, B 
#  20140403, 12, C 
#  20140404, 13, D 
#  20140405, 12, E 
#  20140406, 11, F 
#  
#  欲しい結果 
#  20140401, 13, A 
#  20140404, 13, D 
#  20140402, 11, B 
#  20140406, 11, F 
#  20140403, 12, C 
#  20140405, 12, E 
#  
#  宜しくお願い致します。
#  
#  
#  要するに第一キーは降順、第二キーは昇順で整列する。
#  

'テーブルデータはDATE(YYYYMMの6けたのint型),CODE(varchar型),VALUE(varchar型) の3カラムからなります。各日付順の降順にしたいのですが、スレッドのように、同じコードの場合、その下に日付順でソートしたいです。'(_DATE,_CODE,_VALUE) :-
'要するに第一キーは降順、第二キーは昇順で整列する。'(L1,_第一番目の日付ならび),
情報を取り出す(_第一番目の日付ならび,L1,_DATE,_CODE,_VALUE).

'要するに第一キーは降順、第二キーは昇順で整列する。'(L1,_第一番目の日付ならび) :-
第一キー順序(_逆順コードならび),
setof(_第一番目の日付,
[_CODE,_第一番目の日付] ^ (
'CODEを取り出す'(_逆順コードならび,_CODE),
第二キー順序(_CODE,_,_第一番目の日付)),_第一番目の日付ならび).

第一キー順序(_逆順コードならび) :-
setof(_CODE,[_DATE,_CODE,_VALUE] ^ 元テーブル(_DATE,_CODE,_VALUE),L1),
reverse(L1,_逆順コードならび).

逆順に整列して取り出す(_逆順コードならび,_CODE) :-
member(_CODE,_逆順コードならび).

第二キー順序(_CODE,[_第一番目の日付|R],_第一番目の日付) :-
setof(_DATE,[_DATE,_CODE,_VALUE] ^ 元テーブル(_DATE,_CODE,_VALUE),[_第一番目の日付|R]).

情報を取り出す(_第一番目の日付ならび,_逆順コードならび,_DATE,_CODE,_VALUE) :-
member(_DATE_1,_第一番目の日付ならび),
'CODEを決める'(_逆順コードならび,_DATE_1,_CODE),
元テーブル(_DATE,_CODE,_VALUE).

'CODEを決める'(_逆順コードならび,_DATE_1,_CODE) :-
member(_CODE,_逆順コードならび),
setof(_DATE,[_DATE,_VALUE] ^ 元テーブル(_DATE,_CODE,_VALUE),[_DATE_1|_]).