表A 表B
商品ID 数量 価格 商品ID 商品名
------ ---- ---- ------ ------
0001 10 1000 0001 万年筆
0002 50 200 0002 ボールペン
0003 25 600 0003 シャーペン
0004 150 2000 0004 文房具セット
0005 20 420 0005 ノート
SELECT 数量,価格,商品名,商品ID
FROM 表A,表B
WHERE 表A.商品ID = 表B.商品ID
とやると恐らくこんなような表ができると思います。
商品ID 数量 価格 商品名
------ ---- ---- ------
0001 10 1000 万年筆
0002 50 200 ボールペン
0003 25 600 シャーペン
0004 150 2000 文房具セット
0005 20 420 ノート
ここで、表の行数を6で割ったときの余りの数を表に追加して全体の行数を6の倍数にしたいと思っています。
(ID 0006として空行を追加)
しかし、この表の行数を取得するためにCOUNT関数を使うと思うのですが、使い方が分かりません。
COUNT関数を使うにはGROUP BY句とHAVING句を扱うらしいのですがSELECT句にある列名全部をGROUP BY句に入れないといけないらしく思ったとおりのことが出来ません。
上記のSQLとCOUNT関数を1つのSQLで表の作成と行の行数を得たいと思っています。(ここでは、5行なので5という値を取得したい。)
また、最後にどうやって空行を追加すれば良いかも分かりません。
具体的なSQLのソースなど、どなたか分かりましたら、教えてください。
No.1ベストアンサー
- 回答日時:
行数が6の倍数でなかったら、最大の商品IDの続きでダミー行を補う、というクエリのサンプルは以下のようになります。
何もないところから行は生み出せないので、5行の空行を生成し、余りに応じて使います。
必要な情報は入っていると思いますので、中身をみてください。
SELECT a.商品ID,a.数量,a.価格,b.商品名
FROM 表A a,表B b
WHERE a.商品ID=b.商品ID
UNION ALL
SELECT
RIGHT('0000'+CONVERT(varchar,(CONVERT(int,c.MAXID)+t.SEQ)),4) 商品ID,
数量,価格,商品名
FROM
(SELECT 1 SEQ,NULL 数量,NULL 価格,NULL 商品名
UNION ALL
SELECT 2, NULL,NULL,NULL
UNION ALL
SELECT 3, NULL,NULL,NULL
UNION ALL
SELECT 4, NULL,NULL,NULL
UNION ALL
SELECT 5, NULL,NULL,NULL) t,
(SELECT
COUNT(*)%6 PAGEROW,
ISNULL(MAX(a.商品ID),'0000') MAXID
FROM 表A a,表B b WHERE a.商品ID=b.商品ID) c
WHERE t.SEQ<=(6-PAGEROW) AND c.PAGEROW<>0
返事が遅れてしまい、大変申し訳ございませんでした。
まだ、SQLについて素人同然で、見たことの無い関数が多くなんとか理解することが出来ました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どろぼうけずりの語源
-
中学生です。 チ○コを小さくす...
-
自分で処女膜を破ってしまいま...
-
鉛筆の囲いは消すべきですか?
-
料、代、費の使い分けについて
-
シャープペンシルに芯がつまっ...
-
なぜなら~で始まった文章の終...
-
エクセルの折れ線グラフの折れ...
-
コンビニでエアダスターは、売...
-
公式文書や書類等、鉛筆書き不...
-
英語の文書で「社外秘」「丸秘...
-
建退協証紙の手帳コピーの提出
-
机にカーボンで書いた文字が移...
-
バイトの研修は何分前に行けば...
-
DVDのレーベル面に油性マジ...
-
会社に仕事ができない新人事務...
-
シャーペンを家のなかでなくした
-
ボールペンのキャップを紛失し...
-
ビニール製についた落書き
-
複写で写った文字をキレイに消...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
中学生です。 チ○コを小さくす...
-
自分で処女膜を破ってしまいま...
-
料、代、費の使い分けについて
-
エクセルの折れ線グラフの折れ...
-
鉛筆の囲いは消すべきですか?
-
自分で刺青の方法は?
-
バイトの研修は何分前に行けば...
-
複写で写った文字をキレイに消...
-
コンビニでエアダスターは、売...
-
テーブルに張り付いた印刷物・・・
-
ノートの余分なページをキレイ...
-
会社に仕事ができない新人事務...
-
机にカーボンで書いた文字が移...
-
ゴキブリが本に糞等のしみをつ...
-
シャープペンシルに芯がつまっ...
-
なぜなら~で始まった文章の終...
-
油性マーカーで書いた内容をき...
-
どろぼうけずりの語源
-
鉛筆を半分に切る方法。 女です...
-
白の壁紙に赤のポスカで落書き...
おすすめ情報