Page 465 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼並べ替え syosinnsya 03/12/4(木) 14:49 ┗Re:並べ替え よろずや 03/12/6(土) 0:04 ┗Re:並べ替え syosinnsya 03/12/8(月) 13:35 ┗Re:並べ替え よろずや 03/12/8(月) 21:23 ┗Re:並べ替え syosinnsya 03/12/9(火) 9:34 ┗Re:並べ替え よろずや 03/12/9(火) 23:33 ┗Re:並べ替え syosinnsya 03/12/10(水) 10:44 ┗Re:並べ替え よろずや 03/12/10(水) 13:09 ┗Re:並べ替え syosinnsya 03/12/10(水) 14:24 ┗Re:並べ替え よろずや 03/12/10(水) 22:48 ┗Re:並べ替え syosinnsya 03/12/11(木) 10:28 ┗Re:並べ替え よろずや 03/12/11(木) 22:24 ┗Re:並べ替え syosinnsya 03/12/16(火) 10:12 ┗Re:並べ替え よろずや 03/12/16(火) 19:04 ┗Re:並べ替え syosinnsya 03/12/17(水) 10:04 ┣Re:並べ替え よろずや 03/12/17(水) 22:07 ┗Re:並べ替え よろずや 03/12/17(水) 22:09 ─────────────────────────────────────── ■題名 : 並べ替え ■名前 : syosinnsya ■日付 : 03/12/4(木) 14:49 -------------------------------------------------------------------------
いつもお世話になります クエリq_仕入先別があります。 SELECT 回答管理.siiresaki, 回答管理.[siiresakiko-do], Count(回答管理.tyousairaibi) AS tyousairaibiのカウント, Count(回答管理.kaitoubi) AS kaitoubiのカウント, [kaitoubiのカウント]/[tyousairaibiのカウント]*100 AS 回答率 FROM 回答管理 GROUP BY 回答管理.siiresaki, 回答管理.[siiresakiko-do] ORDER BY Count(回答管理.tyousairaibi) DESC; 今並べ替えの条件がtyousairaibiのカウントの降順となっているのを 1.tyousairaibiが500以上 2.tyousairaibiが100〜499 3.tyousairaibiが20〜99 4.tyousairaibiが19以下 4グループに分け並べ替えの条件を1.tyousairaibiの降順2.それぞれのグループでの回答率の降順としたいのです。よろしくお願いします。 |
> ORDER BY Count(回答管理.tyousairaibi) DESC; ORDER BY Switch(回答管理.tyousairaibi>=500, 1, 回答管理.tyousairaibi>=100, 2, 回答管理.tyousairaibi>=20, 3, True, 4),([kaitoubiのカウント]/[tyousairaibiのカウント]) DESC みたいな感じかな。 |
▼よろずや さん:レスありがとうございました。早速貼り付けてみたら“集計関数の一部として指定された式switch([回答管理].[tyousairaibi]>=500,1回答管理.tyousairaibi>=100,2[回答管理].[tyousairaibi]>=20,3,True,4)を含んでいないクエリを実行しようとしました"というエラーメッセージがでてきます。よろしくお願いします。 |
▼syosinnsya さん: >▼よろずや さん:レスありがとうございました。早速貼り付けてみたら“集計関数の一部として指定された式switch([回答管理].[tyousairaibi]>=500,1回答管理.tyousairaibi>=100,2[回答管理].[tyousairaibi]>=20,3,True,4)を含んでいないクエリを実行しようとしました"というエラーメッセージがでてきます。よろしくお願いします。 GROUP BY 句にも同じものを追加してください。 |
SELECT [回答管理].[siiresaki], [回答管理].[siiresakiko-do], Count([回答管理].[tyousairaibi]) AS tyousairaibiのカウント, Count([回答管理].[kaitoubi]) AS kaitoubiのカウント, [kaitoubiのカウント]/[tyousairaibiのカウント]*100 AS 回答率 FROM 回答管理 GROUP BY [回答管理].[siiresaki], [回答管理].[siiresakiko-do] Switch([回答管理].[tyousairaibi]>=500,1, 回答管理.tyousairaibi>=100,2, [回答管理].[tyousairaibi]>=20,3, True,4), ([kaitoubiのカウント]/[tyousairaibiのカウント]) ORDER BY Switch([回答管理].[tyousairaibi]>=500,1, 回答管理.tyousairaibi>=100,2,[回答管理].[tyousairaibi]>=20,3, True,4), ([kaitoubiのカウント]/[tyousairaibiのカウント]) DESC; としたら、クエリ式'[回答管理][siiresakiko-do] Switch([回答管理].[tyousairaibi]>=500,1, 回答管理.tyousairaibi>=100,2,[回答管理].[tyousairaibi]>=20,3, True,4)の構文エラー:演算子がありません。 とエラーメッセージが出てきます。前に GROUP BY Switch([回答管理].[tyousairaibi]>=500,1, 回答管理.tyousairaibi>=100,2,[回答管理].[tyousairaibi]>=20,3, True,4), ([kaitoubiのカウントと貼り付けたらクエリ式(kaitoubiのカウント/ [tyousairaibiのカウント])[回答管理][siiresaki]の構文エラー:演算子がありませんとエラーメッセージが出てきてしまいます。 よろしくご指導お願いします。 |
SELECT 回答管理.siiresaki, 回答管理.[siiresakiko-do], Count(回答管理.tyousairaibi) AS tyousairaibiのカウント, Count(回答管理.kaitoubi) AS kaitoubiのカウント, Count(回答管理.kaitoubi)/Count(回答管理.tyousairaibi)*100 AS 回答率 FROM 回答管理 GROUP BY Switch(回答管理.tyousairaibi>=500,1,回答管理.tyousairaibi>=100,2,回答管理.tyousairaibi>=20,3,True,4), 回答管理.siiresaki, 回答管理.[siiresakiko-do] ORDER BY Switch(回答管理.tyousairaibi>=500,1,回答管理.tyousairaibi>=100,2,回答管理.tyousairaibi>=20,3,True,4), Count(回答管理.kaitoubi)/Count(回答管理.tyousairaibi) DESC; |
▼よろずや さん: コードをそのままSQLに貼り付けて使わせていただきました。するとこんどは、抽出条件でデータ型が一致しませんとエラーメッセージが出てきます。お手間をおかけしていますが、よろしくお願いします。 |
▼syosinnsya さん: >▼よろずや さん: >コードをそのままSQLに貼り付けて使わせていただきました。するとこんどは、抽出条件でデータ型が一致しませんとエラーメッセージが出てきます。お手間をおかけしていますが、よろしくお願いします。 テーブルのデータ型が提示されていませんので分かりません。 |
テーブルのデータ型はテキスト型です。よろしくお願いします |
▼syosinnsya さん: >テーブルのデータ型はテキスト型です。よろしくお願いします ということですと、 > 1.tyousairaibiが500以上 > 2.tyousairaibiが100〜499 > 3.tyousairaibiが20〜99 > 4.tyousairaibiが19以下 > 4グループに分け並べ替えの条件を1.tyousairaibiの降順2.それぞれのグループでの > 回答率の降順としたいのです。よろしくお願いします。 こちらが理解できません。 どう見ても、tyousairaibi が数値ですよね。 もう一度説明してください。 |
▼よろずや さん:超初心な上説明がへたでもうしわけありません。 テーブルのデータ型は全てテキストです。 そしてクエリでtyousairaibiをカウントしカウント数の降順に並べ替えしました。そのSQLが以下になります。 SELECT 回答管理.siiresaki, 回答管理.[siiresakiko-do], Count(回答管理.tyousairaibi) AS tyousairaibiのカウント, Count(回答管理.kaitoubi) AS kaitoubiのカウント, [kaitoubiのカウント]/[tyousairaibiのカウント]*100 AS 回答率 FROM 回答管理 GROUP BY 回答管理.siiresaki, 回答管理.[siiresakiko-do] ORDER BY Count(回答管理.tyousairaibi) DESC; SQLを書き換えて 1.Count(回答管理.tyousairaibi)が500以上 2.Count(回答管理.tyousairaibi)が100〜499 3.Count(回答管理.tyousairaibi)が20〜99 4.Count(回答管理.tyousairaibi)が19以下 4つのグループごとの降順に並べ変えたいのです。よろしくお願いします |
SELECT Switch(Count([回答管理].[tyousairaibi])>=500,1,Count([回答管理].[tyousairaibi])>=100,2,Count([回答管理].[tyousairaibi])>=20,3,True,4) AS rank, 回答管理.siiresaki, 回答管理.[siiresakiko-do], Count(回答管理.tyousairaibi) AS tyousairaibiのカウント, Count(回答管理.kaitoubi) AS kaitoubiのカウント, Count([回答管理].[kaitoubi])/Count([回答管理].[tyousairaibi])*100 AS 回答率 FROM 回答管理 GROUP BY 回答管理.siiresaki, 回答管理.[siiresakiko-do] ORDER BY Switch(Count([回答管理].[tyousairaibi])>=500,1,Count([回答管理].[tyousairaibi])>=100,2,Count([回答管理].[tyousairaibi])>=20,3,True,4), Count([回答管理].[kaitoubi])/Count([回答管理].[tyousairaibi])*100 DESC; |
▼よろずや さん: おつきあいほんとうにありがとうございます。今度はクエリ実行時にオーバーフローというエラーメッセージが出てしまいます(;_;) |
>おつきあいほんとうにありがとうございます。今度はクエリ実行時に >オーバーフローというエラーメッセージが出てしまいます(;_;) クエリをデザインビューで開いて、どれかフィールドを削除してみてください。 どれを削除したらエラーが消えますか? |
回答率: Count([回答管理].[kaitoubi])/Count([回答管理].[tyousairaibi])*100フィールドを削除したら、エラーメッセージが消えました。よろしくお願いします。 |
SELECT Switch(Count([回答管理].[tyousairaibi]) >= 500, 1 , Count([回答管理].[tyousairaibi]) >= 100, 2 , Count([回答管理].[tyousairaibi]) >= 20, 3, True, 4) AS rank , 回答管理.siiresaki, 回答管理.[siiresakiko-do] , Count(回答管理.tyousairaibi) AS tyousairaibiのカウント , Count(回答管理.kaitoubi) AS kaitoubiのカウント , IIf(Count([回答管理].[tyousairaibi]) > 0 , Count([回答管理].[kaitoubi]) / Count([回答管理].[tyousairaibi]) * 100, 0) AS 回答率 FROM 回答管理 GROUP BY 回答管理.siiresaki, 回答管理.[siiresakiko-do] ORDER BY Switch(Count([回答管理].[tyousairaibi]) >= 500, 1 , Count([回答管理].[tyousairaibi]) >= 100, 2 , Count([回答管理].[tyousairaibi]) >= 20, 3, True, 4) , IIf(Count([回答管理].[tyousairaibi]) > 0 , Count([回答管理].[kaitoubi]) / Count([回答管理].[tyousairaibi]) * 100, 0) DESC; |
この様に書いても同じ結果が得られます。 SELECT rank, siiresaki, [siiresakiko-do], tyousairaibiのカウント, kaitoubiのカウント, 回答率 FROM (SELECT Switch(tyousairaibiのカウント >= 500, 1, tyousairaibiのカウント >= 100, 2 , tyousairaibiのカウント >= 20, 3, True, 4) AS rank , siiresaki, [siiresakiko-do], tyousairaibiのカウント, kaitoubiのカウント , IIf(tyousairaibiのカウント > 0 , kaitoubiのカウント / tyousairaibiのカウント * 100, 0) AS 回答率 FROM (SELECT siiresaki, [siiresakiko-do] , Count(tyousairaibi) AS tyousairaibiのカウント , Count(kaitoubi) AS kaitoubiのカウント FROM 回答管理 GROUP BY siiresaki, [siiresakiko-do] ) AS B ) AS A ORDER BY rank, 回答率 DESC; |