• 締切済み

重複データをテーブルに表示しないようにしたい

ASP初心者です。宜しくお願いします。 SQLで取得したデータをページに表示させたいのですが、その時、重複項目は一つ目だけを表示させ、二つ目以降は表示させないようにしたいと思っています。(以下表をご参照下さい) 大分類 |中分類  |小分類 |品名 --------------------------------------------------------- お菓子 |焼き菓子 |クッキー   |イチゴクッキー     |     |ケーキ    |イチゴショート     |     |       |イチゴマカロン     |氷菓子  |アイスクリーム|ストロベリーアイス     |その他  |飴      |苺飴 主食  |パン   |デニッシュ   |イチゴデニッシュ --------------------------------------------------------- if文を組み合わせれば良いのは分かるのでが上手く書けず苦しんでいます。 宜しくお願い致します。

みんなの回答

  • asx
  • ベストアンサー率50% (27/54)
回答No.1

こんにちは。 現在、テーブルを表示するとき、SQLでとってきた結果の件数文、ループでぐるぐるまわして、1行ずつ表示しているのでしたら、 1つ前の列の内容と比較して、書き出す・書き出さない、という処理をすればできると思いますが、いかがですか? 例えば、 1回目のループでは、 [大分類] = お菓子 [中分類] = 焼き菓子 [小分類] = クッキー [品名] = イチゴクッキー ですよね。 コレを変数か何かで保持しておいて(例えば[prev_大分類][prev_中分類]などに)、 2回目のループのときに、 if [大分類]<>[prev_大分類] then response.write [大分類] end if if [中分類]<>[prev_中分類] then response.write [中分類] end if とやればできると思うのですが、もっとスマートなやり方があるとは思います。。 すみません、中途半端なアドバイスで。

KENT-MILD9
質問者

お礼

お礼が遅くなり申し訳ありません。 やはり一つ前の行との比較が必要なのですね。二回目のループの時と、比較する時の記述が分からないので調べてみます。 ありがとうございました。

KENT-MILD9
質問者

補足

仰るとおりにやってみたつもりなのですが上手く行きませんでした。 前のレコードと比較するので、こんな風になってしまいます。(3レコード目の中分類を見てください) 大分類 |中分類  |小分類 |品名 --------------------------------------------------------- お菓子 |焼き菓子 |クッキー   |イチゴクッキー     |     |ケーキ    |イチゴショート     |焼き菓子 |       |イチゴマカロン     |氷菓子  |アイスクリーム|ストロベリーアイス     |その他  |飴      |苺飴 主食  |パン   |デニッシュ   |イチゴデニッシュ --------------------------------------------------------- 一番初めのレコードとの比較で二番目のレコードの表示、非表示は正常にいきますが、二番目のレコードを非表示にした場合、三番目のレコードがまたデータを表示してしまいます。 困り果てました。もう少し頑張ってみますが、お手すきでしたら助言下さると嬉しいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • aspのセレクトボックスにDBのデータを表示する

    お世話になっています。 現在、aspとSQLServerを使って一覧表を作成しています。 その一覧表を、大分類と中分類のセレクトボックスから 選択して、検索ボタンを押すと、SQLを作成して一覧表を表示する のですが、問題は、大分類を選択した後、その大分類で絞りこまれた 中分類を表示するのに少し時間がかかりすぎるのです。。 中分類はSQLServerのマスターからひろってくるのですが、SQLの 実行自体は1秒もかからないのですが、HTML上でセレクトボックスに 表示させると、すごく時間がかかるのです。テキストファイルから 読み込んだ大分類のセレクトボックスは表示が速いのに、 中分類を同じように速く表示させるには何か別の技術が必要 なのでしょうか? また、大分類のセレクトボックスのonChangeにSubmit()して、 ページを作成しなおしています。 よろしくお願いいたします。

  • 名前定義を使わない入力規制(プルダウン)について

    EXCEL 2003です。 ----------------------------------------- A     B 1 お菓子  プリン,アイス,チョコ・・・ 2 果物   いちご,もも,メロン・・・ 3 ----------------------------------------- Sheet1にプルダウン1(A列:大分類)とプルダウン2(B列:小分類)があり、 プルダウン1の内容に従ってプルダウン2の内容を変更させたいとき、 「名前とINDIRECT関数を用いる方法」は、既に調べました。 今回お聞きしたいのは、 上記プルダウン2に表示すべき小分類表の数が多い場合、 いちいち名前定義をするのは大変な作業になると思うので、 これを以下のような一覧をよそから取得してSheet2に貼り付けたら 動作するような方法はないでしょうか。 ----------------------------------------- A B C 1 お菓子   果物   野菜  2 プリン   いちご  ピーマン 3 アイス   もも   しょうが 4 チョコ   メロン  たまねぎ ----------------------------------------- 【補足】 A2:A4に名前定義「お菓子」はないが、 かわりに先頭行に「お菓子」があるので、これとリンクさせたい。 保守を考えてマクロはできれば使用したくありません よろしくお願いいたします。

  • エクセルの入力規制?について教えてください!

    エクセルの入力規制?について教えてください! 大分類    中分類      小分類 食品     お菓子      ポテト 衣類     上着       Tシャツ 食品     お菓子      ポッキー 食品     生鮮       鯛 衣類     ボトム      メンズパンツ 上記のようにデータがなっている場合、 各大分類・中分類・小分類に入力規制をおこない 大分類で食品を選んだときは、中分類の規制では お菓子か生鮮が表示される・・・ 大分類で食品、中分類でお菓子を選んだ時は、 小分類ではポテトとポッキーしか表示されない・・・ このような事が入力規制で出来るのでしょうか?

  • リストの連動の応用

    エクセル2013を使っています。 次のホームページにあるようなリストの連動(大分類を選択によって小分類の選択肢を変更する)は理解しています。http://www.geocities.jp/chiquilin_site/data/100930_screening2.html 質問したいことは、「大分類の選択肢によっては(プルダウンメニューから選ぶまでもなく)、別の セルに決まった文字を表示させる方法があるのかどうか、またあるのであればどのようにすれば よいのか」ということです。 具体的にどういうことかというと、 上記のホームページ中で、例えば分類で「肉」を選んだ場合には品名にはプルダウンメニューから 選ぶまでもなく牛肉が表示され、分類で「野菜」や「果物」を選んだ場合には プルダウンメニューから品名が選べるようにしたいです。 分類によって、品名がただ一つに決まってしまうものまでわざわざプルダウンメニューから その一つを選択する手間を省きたいという事です。 回答のほどよろしくおねがいします

  • お詫びの品

    些細なことなのですが、先日結婚の内祝いでお菓子屋さんでクッキーを2件配送しました。 男性と女性からの連名でお祝いをいただいたのですが、二人は別々に住んでいて(すんでいる場所も離れています)、 それぞれのご自宅へクッキーを配送していただくことにしました。 女性のお宅へはいちごのクッキー(ピンク色の缶)を、 男性のお宅へは定番のクッキー(茶色の缶)の配送を頼みました。 後日お礼の連絡(メール)があり、女性からの連絡の際は気づかなかったのですが、 男性からは「いちごのクッキーおいしかったです」とのこと。 男性用と女性用、入れ違いに送られてしまったのかな?と思いました。 未確認なのですが、もしかしたら二人で会って一緒に食べたのかなという予測もしましたが…。 ピンク色だと女性らしくて喜んでいただけるかと思い、女性にいちごクッキーを選んだのになぁ…とちょっと残念に思い、 こういうことがありましたとお店に電話しました。 店長さんがお詫びとしてもう一度正しいものを配送すると提案されました。 とくに手紙も入れておらず、商品の値段もまったく同じで中身がすこし違っただけなので、そこまでは…と思いお断りしたところ、 私の家にふたつのクッキーをお詫びとして差し上げるという提案もありました。 おそらくそのお店の方針として、誤った対応をした場合はお詫びの品を必ず送るのかと思います。 きちんとしたブランド店ですし。 女性の配送伝票に「ストロベリークッキー」と明記してあるので「違うものが入ってる」とうすうす気づいてはいると思うので、正しいものを送ったほうがいいのかと思うのですが、 お詫びとしてもう1回送るのって相手に気を遣わせてしまうし遠慮したほうがいいでしょうか? かといって自分で2つもクッキーをもらうのも申し訳ないと思いつつ、助言よろしくお願いいたします。

  • 卵アレルギーについて

    7ヶ月になる子供が卵アレルギーと解りました。 母乳なので、お母さんもと言われたのですが、ふとした疑問なのですが、お菓子やアイスに卵は使われてますか? 裏箱の原材料名に、卵と書いてなければ大丈夫?? 何種類か見たのですが、クッキーには入ってますが 他は表示がないのが多く 入ってないのかな?と疑問に思いました。

  • 1つのテーブル内のデータで重複する結果は表示しない

    日付の範囲を2003/10/01 から 2003/10/02 としてコードが重複する場合は1番 新しい日付を抽出す方法はないでしょうか CODE 日付 0001 2003/10/01 0002 2003/10/01 0001 2003/10/02 0001 2003/10/03 0003 2003/10/01 0004 2003/10/10 0005 2003/10/01 のようなデータがあり、検索した結果を CODE 日付 0001 2003/10/03 0002 2003/10/01 0003 2003/10/01 0005 2003/10/01 となるような式はできないでしょうか 使っているdbはSQL Server 6.5 です。  ご享受のほど、お願いします。

  • SQLについて何ですが

    一つのSQLで下記の様な検索が出来ないかと考えています、 大分類に分けて大分類の中で売れている商品のTOP10を表示し、 現在表示されている商品を抜いた売れている商品TOP100もに表示できるようとしています、 分類のテーブル・商品がどの分類に当てはまるのか関連づけし注文数も保持しているテーブル・商品の売れ行きを保持しているテーブルがあり 分類テーブルには15個(将来的に増える可能性ある)の分類ワードが入っていて、分類別に売れているTOP10を表示し重複部分もあるので最大150個の商品が表示されるようになっています、 全商品の売れ行きTop「表示されている商品プラス100件」を割り出しその中から表示商品はずしてみようと思いこの様なSQL文と作ったのですが今一うまくいっていないような気がします、 「select 商品名 注文数 from 商品テーブル    where 商品名 not in( select 商品名 from 分類商品テーブル where 分類 in ( select 分類 from 分類テーブル )    order by 注文数 desc limit 10) order by 注文数 desc limit 表示商品数+100」 どうもうまく表示できていない様な気がしているのですが、 このSQLどうなのでしょうか? ほかにもっといいSQL文があれば教えてください。 」

  • テーブルに入っているデータと重複チェックしたい

    やりたいこと: phpを実行して取得したデータの内容と既にDBのテーブルに格納されているデータを 比較して、 異なっていれば、新しいデータとして INSERT INTO文で テーブルにデータを登録する。 同じであれば、登録しない。 という処理がしたいです。 $sql = "select * from hoge where url= $page_uri"; $kakunin = mysql_query($sql , $db ); if ( $page_uri == $kakunin ){ //同じデータならスキップ break; } else{ $sql = mysql_query("INSERT INTO hoge VALUES (0,'$page_uri','$pon')"); と書いているのですが、以下のエラーが出てしまいます。。 Fatal error: Cannot break/continue 1 level in /www/xx.php on line 42 これは、breakは使えないよ ってことでしょうか? breakでなくても やりたいことが実現できればこだわりはないのですが、、 アドバイスよろしくお願いします。

    • 締切済み
    • PHP
  • 3つのテーブルから、データが重複しないように抽出したい

    お世話になっております。 今回、以下のような3つのテーブルから情報を引き出したいのですが、 うまくいかず困っております。 【TABLE_A】  a_no | animal_name | ------+------------+  0001 |   uma   |  0002 |   usagi   |  0003 |   kirin   | 【TABLE_B】  b_no | fish_name | ------+----------+  000A | ayu     |  000B | suzuki    |  000C | kurodai   | 【TABLE_C】  NO | a_no1 | a_no2 | b_no1 | b_no2 | ----+-------+-------+-------+-------+  1 |  0001 | 0003  | null  | 000A  |  2 |  0002 | null   | 000C | 000B  |  3 |  0001 | 0002  | null  | null   | TABLE_Cをベースに、A、Bのテーブルから該当データのname値を取ってきたいのですがうまくいきません。 私が求める結果は以下のような感じです。(条件:WHERE NO = 1)  NO | a_no | animal_name | b_no | fish_name | -----+------+------------+------+----------+  1  | 0001 |   uma    | null   |  null   |  1  | 0003 |   kirin    | 000A  |  ayu   | 下記のように、INNER JOIN句を使ったりして四苦八苦してみたのですが、いまいち上手く抽出できません。 SELECT c.NO, a.a_no, a.animal_name, b.b_no, b.fish_name FROM (TABLE_C c INNER JOIN TABLE_A a ON c.a_no1 = a.a_no OR c.a_no2 = a.a_no ) INNER JOIN TABLE_B b ON c.b_no1 = b.b_no OR c.b_no2 = b.b_no WHERE c.NO = 1; 上記だと、  NO | a_no | animal_name | b_no | fish_name | ----+-------+------------+------+----------+  1  | 0001 |   uma   | null   |  null  |  1  | 0003 |   kirin   | 000A  |  ayu  |  1  | 0003 |   kirin   | 000A  |  ayu  | のように、余計に重複して結果が返されてきてしまいます。(3行目は2行目と同じ結果なのでいらないのです・・・) 何か良い構文はありませんでしょうか?;; 宜しくお願い致します! (環境は、MySQL 4.1.1です。)

    • ベストアンサー
    • MySQL
無期転換の雇用についての疑問
このQ&Aのポイント
  • 労契18条の説明によると、1年契約の場合、5年を超えた6回目の更新から無期雇用になる。
  • 3年契約の場合、1回目の更新で無期転換の申し出ができ、無期雇用になる。
  • 派遣の場合、労契18条の無期転換は派遣元の正社員とする必要がある。
回答を見る