
Aテーブル
日付 番号 品名 個数 単価 合計
10/1 1 aa 4 10 40
10/1 2 bb 3 8 24
10/1 2 cc 6 10 60
10/2 1 dd 5 8 40
Bテーブル
日付 番号
10/1 1
10/1 2
結果
AテーブルとBテーブルを比較して、
結果、Aテーブルに、以下のテーブルを作りたいです。
Aテーブル
日付 番号 個数 合計
10/1 1 9 80
10/1 2 9 84
のように、AテーブルとBテーブルの日付と番号と合計でsumをして、Groupして、追加及び更新をしたいんですが、inner JOIN では、出来ませんでした。
わかりづらいと思いますが申し訳ありませんが、
サンプルをつけて頂けませんか?
宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
AテーブルとBテーブルを比較してAテーブルに作るのではなくて他の
テーブルに作るのでは駄目でしょうか。
単に結果を表示するのであれば下記となりますが。
SELECT A.日付, A.番号, Sum(A.個数) AS 個数の合計, Sum(A.合計) AS 合計の合計
FROM A INNER JOIN B ON (A.番号 = B.番号) AND (A.日付 = B.日付)
GROUP BY A.日付, A.番号;
No.2
- 回答日時:
> AテーブルとBテーブルの日付と番号が同じデータで、合計を加算したいです。
そうすると
日付 番号 合計
10/1 1 80
とはなりませんが。
「日付と番号が同じデータ」が正しくて、「合計80」が間違いなのですか?
「日付と番号が同じデータ」が間違いで、「合計80」が正しいのですか?
「両方正しい」は有り得ません。
「日付と番号が同じデータ」なら「Aテーブル.日付がBテーブル.日付から求めた範囲内」は悩むこと無いはずです
No.1
- 回答日時:
・AテーブルとBテーブルから、どんな計算方法で「結果のAテーブル」ができるのか、説明してもらえませんか?
日本語でお願いします。
10/1, 2 , 84
は
10/1 2 bb 3 8 24
10/1 2 cc 6 10 60
の
日付10/1,番号2,合計 60+24
なのは、なんとなく予想が付きます。
ですが
10/1, 1 ,80
が
10/1 1 aa 4 10 40
10/2 1 dd 5 8 40
からどうやって導かれるのか?
日付10/1,番号1,合計 40+40
だとして、 「10/2 1 dd 5 8 40」が合計の対象となる根拠は何なのでしょうか?
「10/30 1 ee 6 8 48」「11/1 1 ee 6 8 48」「9/30 1 ee 6 8 48」
これらは集計対象になるんでしょうか?
Bテーブルの日付10/1 で 「10/2 1 dd 5 8 40」が対象になる、とするなら、Bテーブルの日付は「集計範囲を表わす」ことになります。
そうすると、10/1 が何を意味するかが不明です。
日を無視した「10月」なのか、「10/1開始」で1ヶ月なのか四半期なのか年なのか。
・「Aテーブルに、以下のテーブルを作りたいです。」の意図がわかりません。
Aテーブルは「日付 番号 品名 個数 単価 合計」を列に持つテーブルです。
作りたいという「Aテーブル」は「日付 番号 合計」で、上記のAテーブルとは違います。
『Aテーブルに、以下のテーブルを作る』を文字通りに解釈すれば、
(集計結果を一次テーブル等に保存);
DROP TABLE Aテーブル; -- 古いAテーブルは消す
CREATE TABLE Aテーブル (日付 ,番号 ,合計);-- 新しいAテーブルを作る
INSERT INTO Aテーブル FROM 集計結果 -- 保存した結果を戻す
という流れになるかと思いますが、おそらく、あなたが求めているものでは無いと思います。
※ もし、本気で、Aテーブルを書き換えてしまおうとしているなら、その考え自体を改めた方がよいです。
単にデータを取り出すだけなら、SELECT です。
INSERT や UPDATEが必要なのは、結果をテーブルに書き出すときです。
このときは Aテーブルではなく、 A集計テーブル のような別のテーブルにするのが普通です。
・使用しているDBシステムとそのバージョン、各テーブルの定義を明記してください。
例えば。
「日付」列が日付型の場合、用意されている日付操作用関数を使って、簡単に「次の月」とかを計算できます。
「日付」列が文字列の場合、用意されている文字列操作用関数を使って、必要な部分を取り出して加工する、といったことが必要になります。
あるいは、文字列型から日付型に変換して、日付操作用関数を使う、といった方法を取ります。
どんな関数が使えるかは、システムによります。
例えば。
A集計テーブルに保存する場合、既存の行はUPDATE、新規行はINSERTすることとします。
これが1文でINSERTとUPDATEを行えるシステムと、別々に判定する必要のあるものとがあります。
1文でできるものでも、システムによって構文が違います。
以上のようなことが揃って、ようやくSQLにできます。
SELECTはこんな感じでしょう。情報が無いので、これ以上は書けません。
SELECT
Bテーブル.日付,
Bテーブル.番号,
SUM(Aテーブル.合計) as 合計
FROM Aテーブル
INNER JOIN Bテーブル
ON 「Aテーブル.日付がBテーブル.日付から求めた範囲内」
AND Aテーブル.番号=Bテーブル.番号
GROUP BY Bテーブル.日付,Bテーブル.番号
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Insertで重複となったキーをさ...
-
テーブル定義書作成時のIndex付...
-
SELECT 文の NULL列は?
-
Postgresqlのレポート機能について
-
PostgreSQL 8.0.2 の ERROR: r...
-
「テーブルに座って……」という...
-
接着剤の跡の取り方
-
SQL*LoaderでCSVから指定した列...
-
Accessでデータシートに同じデ...
-
バイキングのトレーの形
-
降順で並び替えて昇順で受け取...
-
オーダーの覚え方について
-
L2SWはARPテーブルを持っている?
-
飲み会で、座敷orテーブルどち...
-
結合テーブルでINSERTする方法...
-
AccessのSQL 部分一致したデー...
-
2台のサーバー間でのテーブル...
-
update文で改行を入れる
-
ビューのソートについて
-
このISAMでは、リンクテーブル・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
SQLにて指定日付より前、かつ最...
-
テーブルに存在しない列をselec...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
javaでデータベース上のテーブ...
-
単純なselectが遅くなるのです...
-
2つのテーブルで引き算 postgres
-
PostgreSQL レコードからアイテ...
-
テーブルを作ろうとしたら。
-
デットロック回避策(autocommit...
-
Postgresのデータ領域の拡張に...
-
MS Access から PostgreSQL へ...
-
Postgresqlのレポート機能について
-
reindex と update のデッドロック
-
最新レコードを抽出し外部結合...
-
異なるデータベースでのINSERT...
-
投稿記事と関連付けているテー...
-
テーブルにcsvファイルをインポ...
-
SQLのクエリの書き方を教えて下...
おすすめ情報
結果の個数は、消し忘れました。
申し訳ありません。
AテーブルとBテーブルの日付と番号が同じデータで、合計を加算したいです。
宜しくお願い致します。