回答編集履歴

5

修正

2017/10/20 06:50

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  , (select sum(売上金額) 売上明細 where 売上ID=hd.売上ID and 種別='通常仕入') as 差引予定金額
24
24
 
25
- 売上ヘッダー
25
+ 売上ヘッダー as hd
26
26
 
27
27
  where 売上ID in (select 売上id from 売上明細 where 種別='通常仕入')
28
28
 

4

修正

2017/10/20 06:50

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -12,6 +12,44 @@
12
12
 
13
13
  ヘッダーを修正したいでしたね。
14
14
 
15
+
16
+
17
+ 修正前に確認したいということであれば、'通常仕入'を含む売上IDのヘッダーに対して補正すべき金額を抽出
18
+
19
+ ```SQL
20
+
21
+ select 売上ID, 金額
22
+
23
+ , (select sum(売上金額) 売上明細 where 売上ID=hd.売上ID and 種別='通常仕入') as 差引予定金額
24
+
25
+ 売上ヘッダー
26
+
27
+ where 売上ID in (select 売上id from 売上明細 where 種別='通常仕入')
28
+
29
+ ```
30
+
31
+
32
+
33
+ で、実際の修正としては、
34
+
35
+ 売上種別がどれだけバリエーションがあるかわからないので、2種類書いてみました。
36
+
37
+ '通常仕入'を含む売上IDのヘッダーに対して、'通常仕入'の明細の売上金額の合計をヘッダーの金額から差し引く
38
+
39
+
40
+
41
+ ```SQL
42
+
43
+ update 売上ヘッダー as hd set 金額=金額-(select sum(売上金額) 売上明細 where 売上ID=hd.売上ID and 種別='通常仕入')
44
+
45
+ where 売上ID in (select 売上id from 売上明細 where 種別='通常仕入')
46
+
47
+ ```
48
+
49
+
50
+
51
+ '通常仕入'を含む売上IDのヘッダーに対して、'通常仕入'を除く明細の売上金額の合計をヘッダーの金額に設定。
52
+
15
53
  ```SQL
16
54
 
17
55
  update 売上ヘッダー as hd set 金額=(select sum(売上金額) 売上明細 where 売上ID=hd.売上ID and 種別<>'通常仕入')

3

修正

2017/10/20 06:49

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -14,8 +14,8 @@
14
14
 
15
15
  ```SQL
16
16
 
17
- update 売上ヘッダー as hd set 金額=(select sum(売上金額) 売上明細 where ID=hd.ID and 種別<>'通常仕入')
17
+ update 売上ヘッダー as hd set 金額=(select sum(売上金額) 売上明細 where 売上ID=hd.売上ID and 種別<>'通常仕入')
18
18
 
19
- where ID in (select id from 売上明細 where 種別='通常仕入')
19
+ where 売上ID in (select 売上id from 売上明細 where 種別='通常仕入')
20
20
 
21
21
  ```

2

修正

2017/10/20 06:39

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```SQL
16
16
 
17
- update 売上ヘッダー as hd set 金額=(select sum(金額) 売上明細 where ID=hd.ID and 種別<>'通常仕入')
17
+ update 売上ヘッダー as hd set 金額=(select sum(売上金額) 売上明細 where ID=hd.ID and 種別<>'通常仕入')
18
18
 
19
19
  where ID in (select id from 売上明細 where 種別='通常仕入')
20
20
 

1

追記

2017/10/20 05:13

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -5,3 +5,17 @@
5
5
  select * from 売上明細 where 種別='通常仕入'
6
6
 
7
7
  ```
8
+
9
+ 追記
10
+
11
+ ---
12
+
13
+ ヘッダーを修正したいでしたね。
14
+
15
+ ```SQL
16
+
17
+ update 売上ヘッダー as hd set 金額=(select sum(金額) 売上明細 where ID=hd.ID and 種別<>'通常仕入')
18
+
19
+ where ID in (select id from 売上明細 where 種別='通常仕入')
20
+
21
+ ```