• ベストアンサー

1行目は1、2行目は1~2、3行目は1~3

1行目は1、2行目は1~2、3行目は1~3 DBの中に 1,'item1',10 2,'item2',5 3,'item3',8 4,'item4',12 みたいなデータが入っていて、 そこからデータを引っ張ってきた時に 1,'item1',10 2,'item2',15 3,'item3',23 4,'item4',35 といった感じのデータの取り出し方というのは可能でしょうか?

  • MySQL
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>1行目は1、2行目は1~2、3行目は1~3 大原則として・・・ SQLにはn行目というあいまいな概念は使いません。 ただしorder byできちんと並び順が確定できるのであれば ベタなやり方として、以下のようなやり方があります。 元テーブル create table table_x (id int,item varchar(10),val int); insert into table_x values(1,'item1',10),(2,'item2',5),(3,'item3',8),(4,'item4',12); 例1)変数をつかう set @sum=0; select id ,item ,@sum:=@sum+val as sum_val from table_x order by id; 例2)サブクエリを使えばソートする必要はありません。 SELECT id,item, (SELECT SUM(val) FROM table_x AS x2 WHERE x2.id <= x1.id) AS sum_val FROM table_x AS x1

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

分かり易くするため、テーブルはtbl、項目を1列目から id,name,valとします。理論を組み立てましょう。 (1)求める値はidが自分より小さいもののvalの合計 このままSQLにしてみます。 SELECT A.id,Max(name) AS item,Sum(B.val) AS SumValue FROM tbl A LEFT JOIN tbl AS B ON A.id>=B.id GROUP BY A.id 如何でしょうか。

関連するQ&A

  • HTMLのテーブル行の高さを動的に変更する方法

    ASPを使用してDBにアクセスし、取得したデータに合わせてテーブルでリストを作成する勉強をしています。 表示するデータの中に、文章をセル内に2行又は3行で表示しなければならないものがあります。 行の高さを2行の時と3行の時で動的に変更する方法はありませんでしょうか? 宜しくお願い致します。

  • 【マクロ等】4行ごとに行を消したいのですが…

    いつもお世話になっております。 最近Excelで作業をすることが多いのですが相手の会社より頂いたデーターがテンプレートの違い上読み込むと4行ごとにデータが表示されます。 (参考図) ■A B C D E F (1)100 (2) (3) (4) (5)200 (6) (7) (8) (9) (10)1000 … と言った感じで4行の空欄が入ってしまいます。 いつもこの4行を行の削除でマウスを右クリックして削除しているのですがデーター行が2000とかを超えると血の気が引きます。。。 どうにか一括で間4行を削除することはできないでしょうか? 必ずデータはA1からはじまり4行ごとに間が空きA5,A10…と数値が入る形です。 よろしくお願いします。

  • EXCELで1行のデータを4行に書くとき

    EXCELで表を作りました。 1行のデータをタイトル含め4行にしたいので計算式【=A2】でリンクさせました。 たとえば1行のデータを半分に切って、上から【タイトル、データ、タイトル、データ】という感じです。 その4行の表を下にコピペすると5行目のデータがリンクされてしまいます。 コピペした表にすぐ下の1行をリンクしたい場合どのようにすればいいでしょうか。 *画像がうまく添付できません、、、 *このような書き方で理解いただけましたでしょうか。 以上、教えていただけると助かります。

  • エクセルで長い行を5行ごとに1列にするには?

    エクセルで行列の入れ替えの応用(になるのでしょうか?)をお尋ねします。 A列に例えば100行のデータが入っているのを、5行ずつ横並べにして、20行にしたい時どうすればよいでしょうか? A列 ------- データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) -------- こうなっているのを、  A列  B列   C列  D列   E列 ------------------------------------------ データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) ---------------------------------------- このように、表示したいのです。 お尋ねしているのは、100行ですが、 実は1500行ほどの長い名簿データが元のものです。 宜しくお願い致します。

  • VB6.0 ListViewの一行目を表示しないようにするには?

    VB6.0 ListViewの一行目を表示しないようにするには? こんにちは。 環境WinXP,VB6.0です。 リストビューを表示する際に、一行目を表示させたくないのですが、 どのように書けばいいのでしょうか? DBの値をリストビューに表示しているのですが、テストで入れたデータが表示されてしまいます。 かといって、このテストデータが重要な役割をしているので、消したくありません。 このテストデータは、常に一行目に表示されるので、リストビュー表示の際に一行目だけ消して表示したいです。 何か良い方法があればご教授下さい。

  • データセットの内容を行表示したい。

    データセットに格納されているデータの行単位で表示する方法がわかりません。 現在試した方法は MessageBox.Show(DsTmpTableSelect.Tables(0).Rows.ToString) MessageBox.Show(DsTmpTableSelect.Tables(0).Rows.Item(0).ToString) なのですがいずれも行は表示されませんでした。 一応下記の様に書けば1行目の1列目の値は表示できたので データ自体は格納されています。 MessageBox.Show(DsTmpTableSelect.Tables(0).Rows.Item(0)(0).ToString) どのように書けば行単位で表示できるのでしょうか? よろしくお願いします。

  • PEAR DBでの行取得について

    PEAR::DBにてテーブルの内容は現在下記のようにしておりますが 明示的に例えば2行目のデータを取得したい場合はどのようにすれば良いでしょうか。 $res =& $db->query('select * from shouhin'); while ($row =& $res->fetchRow()) { }

    • ベストアンサー
    • PHP
  • ファイルの1行のデータをbyte単位でストリング配列に書き込みたい

    こんばんは。お世話になります。 ファイルに固定長のデータがあります。1行につき20件位あります。 データは固定長なので、行が変わってもデータの項目名は変わりません。最終的には、このデータをDBに入れます。 CSVファイルだと、カンマで区切ってあるので、データを分けることが出来るのですが、固定長のデータはどういう方法で、区切るのでしょうか? 誰か分かる方は教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • 5行おきに5行ずつ抽出するには?~教えて下さい。

    ファイル内のデータの並び替え処理したく、質問します。 データは、1列目に通し番号、2、3、4列目にデータが入っています(下に例を書きます)。 5行ごとに5つの行のデータをまとめたいのです。 具体的に言うと、「1、6、11、16、21行目」のデータをまとめて1行(タブ切り)に。新しい行には、真ん中の数字「11」を先頭列に入れたいです。 それをずらしてゆき、「2、7、12、17、21行目」のデータを1行に、、というようにしたいのです。 扱うファイルの行数は、様々です。 これを統計処理を行う予定です。perl初心者ですので、トライした思案策を載せても参考にならないかと思い、0から教えて頂く形になりますが、よろしくお願いします。 1 10 10 10 2 20 20 20 3 30 30 30 4 40 40 40 5 50 50 50 6 10 10 10 7 20 20 20 8 30 30 30 9 40 40 40 10 50 50 50 11 10 10 10 12 20 20 20 13 30 30 30 14 40 40 40 15 50 50 50 16 10 10 10 17 20 20 20 18 30 30 30 19 40 40 40 20 50 50 50 21 10 10 10 22 20 20 20 23 30 30 30 24 40 40 40 25 50 50 50 出来上がりは、 11 10 10 10 10 10 10 10 10 10 12 20 20 20 20 20 20 20 20 20 というようになります。

    • ベストアンサー
    • Perl
  • 2行にわたるデータを1行にしたい

    こんにちは。小川と申します。どなたか知恵を貸してください。 表の中のレコードデータが2行にわたるものを1行にしたいのです。 1レコードが1行目2行目にありますが、E2をE1とF1の間に、F2をF1とG1の間に入れて2行目を削除したい。 エクセルやアクセスなど手段はどれでもいいのですが、件数が5000件以上あるファイルが多数あり、とても手作業で出来ません。 どなたか知恵を貸してください。 よろしくお願いします。