- ハンドル
- 会議室デビュー日: 2008/01/25
- 投稿数: 16
|
投稿日時: 2008-12-03 13:58
テーブル間での計算方法について質問です。
Access 2007で開発を行っております。
下記のようなテーブル構成の時
コード: |
|
(A)
CODE | DATE | ERROR_1 |
------------------------------------
1 | 2008/11/20 | 5 |
------------------------------------
2 | 2008/11/21 | 2 |
------------------------------------
3 | 2008/11/21 | 10 |
(B)
CODE | DATE | ERROR_1 |
------------------------------------
1 | 2008/11/20 | 2 |
------------------------------------
5 | 2008/11/21 | 2 |
(C)
CODE | DATE | ERROR_1 |
------------------------------------
3 | 2008/11/21 | 4 |
|
テーブルAから"CODE"&"DATE"が同じレコードのテーブルBの"ERROR_1"の値を引き算し、
テーブルAと"CODE"&"DATE"が同じレコードのテーブルCの"ERROR_1"の値を足し算した結果を求めるSQLはどのように記述すればよいのでしょうか?
下記のような結果が求められればと考えております。
コード: |
|
CODE | DATE | ERROR_1 |
------------------------------------
1 | 2008/11/20 | 3 | * (A)、(B)間で同じCODE&DATE行を引き算結果
------------------------------------
2 | 2008/11/21 | 2 |
------------------------------------
3 | 2008/11/21 | 14 | * (A)、(C)間で同じCODE&DATE行を足し算結果
------------------------------------
5 | 2008/11/21 | 2 |
|
|
- nakaP
- 大ベテラン
- 会議室デビュー日: 2005/09/27
- 投稿数: 138
- お住まい・勤務地: 高知
|
投稿日時: 2008-12-03 14:19
JOINで結合して各テーブルのERROR_1で数式を作る。
|
- King
- ぬし
- 会議室デビュー日: 2008/06/20
- 投稿数: 284
|
投稿日時: 2008-12-03 14:21
何がわかりませんか?
テーブルを結合して足し算と引き算をすれば良いだけだと思いますが・・・。
わからない箇所を教えてください。
|
- ハンドル
- 会議室デビュー日: 2008/01/25
- 投稿数: 16
|
投稿日時: 2008-12-03 14:32
>何がわかりませんか?
>テーブルを結合して足し算と引き算をすれば良いだけだと思いますが・・・。
>わからない箇所を教えてください。
@「3っつのテーブルの結合方法」
A「足し算、引き算の書き方」
がわかりません。
@はnakaPさんからJOINを使うというヒントをいただけたので考え中です。
Aは?です。
|
- King
- ぬし
- 会議室デビュー日: 2008/06/20
- 投稿数: 284
|
投稿日時: 2008-12-03 14:49
「sql 足し算」
で検索するといっぱいヒットしますよ。
|
- ハンドル
- 会議室デビュー日: 2008/01/25
- 投稿数: 16
|
投稿日時: 2008-12-03 14:54
>「sql 足し算」
>で検索するといっぱいヒットしますよ。
はい、一応検索して調べてみたのですが足し算、引き算には(+、-)を使うという事はわかるのですが、テーブル間同士の記述の方法等のサンプルが見つけられませんでした。
|
- 無名tiger
- 常連さん
- 会議室デビュー日: 2008/04/18
- 投稿数: 36
|
投稿日時: 2008-12-03 15:11
SELECT CODE,DATE,SUM(ERROR_1)
FROM
(
SELECT CODE,DATE,ERROR_1
FROM A
UNION ALL
SELECT CODE,DATE,-ERROR_1
FROM B
UNION ALL
SELECT CODE,DATE,ERROR_1
FROM C)
GROUP BY CODE,DATE
試してみてください。
_________________ カスタマイズ自由自在のスタートページ。
|
- King
- ぬし
- 会議室デビュー日: 2008/06/20
- 投稿数: 284
|
投稿日時: 2008-12-03 18:08
コード: |
| SELECT
A.CODE,
A.DATE,
A.ERROR_1 - ISNULL(B.ERROR_1, 0) + ISNULL(C.ERROR_1, 0)
FROM
(A LEFT OUTER JOIN B ON A.CODE = B.CODE AND A.DATE = B.DATE)
LEFT OUTER JOIN C ON A.CODE = C.CODE AND A.DATE = C.DATE
| とか。
自信は無いけど・・・。
|