表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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- その他(データベース) accessについて 2 2022/05/31 16:58
- SQL Server SQLのクエリの書き方 1 2022/03/29 23:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中学生です。 チ○コを小さくす...
-
バイトの研修は何分前に行けば...
-
自分で処女膜を破ってしまいま...
-
ノートPCで常に「シュー」と言...
-
コンビニでエアダスターは、売...
-
料、代、費の使い分けについて
-
ノートの余分なページをキレイ...
-
エクセルの折れ線グラフの折れ...
-
ステッカーをはがした跡のネチ...
-
ふたが開かない・・・
-
色鉛筆の落書き
-
複写で写った文字をキレイに消...
-
なぜなら~で始まった文章の終...
-
修正ペン・修正テープが利用で...
-
鉛筆の汚れについて
-
ワイシャツについたボールペン...
-
アルミサッシについた、ガムテ...
-
胸ポケットがない服で、筆記具...
-
鉛筆と消しゴムは合わせて150円...
-
マクロ F8が効かない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
中学生です。 チ○コを小さくす...
-
自分で処女膜を破ってしまいま...
-
エクセルの折れ線グラフの折れ...
-
料、代、費の使い分けについて
-
バイトの研修は何分前に行けば...
-
鉛筆の囲いは消すべきですか?
-
研修レポートはボールペン書き?
-
コンビニでエアダスターは、売...
-
ふたが開かない・・・
-
ノートの余分なページをキレイ...
-
消しゴムに名前を記入する方法
-
修正ペン・修正テープが利用で...
-
大学の学生証の裏に通学証明書...
-
ノートPCで常に「シュー」と言...
-
会員証などのプラスチックのカ...
-
マクロ F8が効かない
-
パワーポイント2016で蛍光...
-
引き出しに物が引っかかって開...
-
お店で見かける伝票を刺す道具...
-
なぜなら~で始まった文章の終...
おすすめ情報