1263289686 SQL文がわからなくて困っています。

そもそも、SQLで取得可能なのかもわかりません…。
分かる方、お力を貸してください。
実行できる回答をしてくださった方には300~1000ポイント差し上げます。

テーブルを記載するので長くなってしまうため回答欄に質問を記載します。

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/01/14 23:16:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:sonson12 No.4

回答回数11ベストアンサー獲得回数2

ポイント300pt

ORACLE であれば以下のSQLで大丈夫とおもいます。

No と
ConIdには「表示順(No)'02'とコンテンツ(ConID)ID'00015'というパラメタを取得。」で

取得した値をセットするようにしてください。

SELECT a.* FROM テーブル a,

( SELECT * FROM テーブル x

WHERE x.No = :No and x.ConId = :ConId ) b

WHERE

( a.GenID = b.GenID and

a.No > b.No )

or

( a.GenID <> b.GenId )

ORDER By a.GenID,No

id:Ryo0524

ありがとうございます。こちらのロジックを参考にさせてもらいました。

2010/01/14 23:13:08

その他の回答4件)

id:pah00 No.1

回答回数208ベストアンサー獲得回数5

ポイント20pt

SQLで取得可能です。JOINしてOREDER BYをかけるだけです。

DBはORACLEですか?それともほかの何かでしょうか?

id:Ryo0524

ORACLEです。SQLだけで可能でしょうか?

2010/01/12 20:52:23
id:km1967 No.2

回答回数541ベストアンサー獲得回数40

可能だが、SQLだけではできない。

サーバサイド・プログラミングが必要。

言語はPHP?それともJava? サーバサイド言語とバージョンを示してください。

それから、利用するRDBMSの名称とバージョンも必須。

id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント200pt
SELECT * FROM (
  SELECT * FROM テーブル
   WHERE GenID = ( SELECT GenID FROM テーブル WHERE ConID = :ConID )
     AND No > ( SELECT No FROM テーブル WHERE ConID = :ConID )
  UNION
  SELECT * FROM テーブル
   WHERE GenID <> ( SELECT GenID FROM テーブル WHERE ConID = :ConID )
) AS 表示データ
ORDER BY GenID,No

まぁ、素直に書けばこんな所か。

正規化もされてないし、キーもわからん。

あげくDBもわからんでは動くかどうか全く保証できないが。

id:Ryo0524

あろがとうございます。

2010/01/14 23:13:25
id:sonson12 No.4

回答回数11ベストアンサー獲得回数2ここでベストアンサー

ポイント300pt

ORACLE であれば以下のSQLで大丈夫とおもいます。

No と
ConIdには「表示順(No)'02'とコンテンツ(ConID)ID'00015'というパラメタを取得。」で

取得した値をセットするようにしてください。

SELECT a.* FROM テーブル a,

( SELECT * FROM テーブル x

WHERE x.No = :No and x.ConId = :ConId ) b

WHERE

( a.GenID = b.GenID and

a.No > b.No )

or

( a.GenID <> b.GenId )

ORDER By a.GenID,No

id:Ryo0524

ありがとうございます。こちらのロジックを参考にさせてもらいました。

2010/01/14 23:13:08
id:naninanida11 No.5

回答回数193ベストアンサー獲得回数3

select * from *** ordery by aaa;

  • id:Ryo0524
    SQL文がわからなくて困っています。
    そもそも、SQLで取得可能なのかもわかりません…。
    分かる方、お力を貸してください。
    実行できる回答をしてくださった方には300~1000ポイント差し上げます。

    テーブルを記載するので長くなってしまうため回答欄に質問を記載します。

    よろしくお願いします。


    下記のようなテーブルがあります。

    ConID|No|GenID|ジャンル名| コンテンツ名
    ====+==+=====+=======+=============================================
    00011|01|00001|家庭の医学|新型インフルエンザについて
    -------+---+-------+-------------+---------------------------------------------
    00231|02|00001|家庭の医学|予防接種とその後の対策
    -------+---+-------+-------------+---------------------------------------------
    00032|01|00002|市町の紹介|市長のあいさつ
    -------+---+-------+-------------+---------------------------------------------
    00015|02|00002|市町の紹介|市章について
    -------+---+-------+-------------+---------------------------------------------
    00061|03|00002|市町の紹介|まち自慢コンテストについて
    -------+---+-------+-------------+---------------------------------------------
    00077|01|00003|まちおこし|商店街復興について
    -------+---+-------+-------------+---------------------------------------------
    00032|02|00003|まちおこし|B級グルメについて
    -------+---+-------+-------------+---------------------------------------------
    00019|03|00003|まちおこし|世界遺産について
    -------+---+-------+-------------+---------------------------------------------
    00003|04|00003|まちおこし|アスレチック施設について
    -------+---+-------+-------------+---------------------------------------------
    00005|01|00004|社会貢献☆|ボランティア活動について
    -----------------------------------------------------------------------------------

    添付の図のようにジャンル名とコンテンツ名がリンクで表示されています。
    (リンクをクリックするとコンテンツのページへ遷移します)

    コンテンツ名をクリックしたとき、パラメタとしてコンテンツID(ConID)と表示順(No)
    を得ることができます。
    このふたつの値を利用して以下のようなテーブルを取得したいのですが、可能でしょうか?

    例)コンテンツ名「市章について」のリンクをクリックする。
      このとき、表示順(No)'02'とコンテンツ(ConID)ID'00015'というパラメタを取得。
      ※重要※ジャンルIDはパラメタとしてもってこない。

    <取得したいテーブル>
    ジャンルID(GenID)が'00002'(「市章について」が登録されているジャンルのジャンルID)
    のジャンルのものについては表示順が「市章について」の表示順より大きいもののみを出力。
    ジャンルIDが'00002'と異なるジャンルのコンテンツについてはすべて表示する。
    このとき、出力順はジャンルIDの昇順かつ表示順の昇順。

    ConID|No|GenID|ジャンル名| コンテンツ名
    ====+==+=====+=======+=============================================
    00011|01|00001|家庭の医学|新型インフルエンザについて
    -------+---+-------+-------------+---------------------------------------------
    00231|02|00001|家庭の医学|予防接種とその後の対策
    -------+---+-------+-------------+---------------------------------------------
    00032|01|00002|市町の紹介|市長のあいさつ
    -------+---+-------+-------------+---------------------------------------------
    00061|03|00002|市町の紹介|まち自慢コンテストについて
    -------+---+-------+-------------+---------------------------------------------
    00077|01|00003|まちおこし|商店街復興について
    -------+---+-------+-------------+---------------------------------------------
    00032|02|00003|まちおこし|B級グルメについて
    -------+---+-------+-------------+---------------------------------------------
    00019|03|00003|まちおこし|世界遺産について
    -------+---+-------+-------------+---------------------------------------------
    00003|04|00003|まちおこし|アスレチック施設について
    -------+---+-------+-------------+---------------------------------------------
    00005|01|00004|社会貢献☆|ボランティア活動について
    -------------------------------------------------------------------------------------
  • id:degucho
    DBMSや実際に表示に使用しているアプリによって変わると思いますが
    環境を提示したほうが解答が付きやすいと思います。
    可能と言えば可能ですが表示側のロジックではじいた方が簡単かと。

  • id:chuken_kenkou
    どの列で、行が一意に識別できるのでしょうかね?

    2010-01-12 18:58:49 のコメントで、

    00032|01|00002|市町の紹介|市長のあいさつ

    が検索対象となることが、質問&コメントから、分からないのですけど。
  • id:Ryo0524
    すみません…
    00032|01|00002|市町の紹介|市長のあいさつ
    は検索対象外です…。

    正しい取得したいデータは以下のものです。

    ConID|No|GenID|ジャンル名| コンテンツ名
    ====+==+=====+=======+=============================================
    00011|01|00001|家庭の医学|新型インフルエンザについて
    -------+---+-------+-------------+---------------------------------------------
    00231|02|00001|家庭の医学|予防接種とその後の対策
    -------+---+-------+-------------+---------------------------------------------
    00061|03|00002|市町の紹介|まち自慢コンテストについて
    -------+---+-------+-------------+---------------------------------------------
    00077|01|00003|まちおこし|商店街復興について
    -------+---+-------+-------------+---------------------------------------------
    00032|02|00003|まちおこし|B級グルメについて
    -------+---+-------+-------------+---------------------------------------------
    00019|03|00003|まちおこし|世界遺産について
    -------+---+-------+-------------+---------------------------------------------
    00003|04|00003|まちおこし|アスレチック施設について
    -------+---+-------+-------------+---------------------------------------------
    00005|01|00004|社会貢献☆|ボランティア活動について
    -------------------------------------------------------------------------------------

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません