teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

訂正

2020/07/03 04:17

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -26,7 +26,7 @@
26
26
  where tyumon_code=Tyumon.tyumon_code
27
27
  and tyumon_no=Tyumon.tyumon_no
28
28
  and tyumon_eda=Tyumon.tyumon_eda
29
- and jyoken = @jyoken and syohin <> @shyohin
29
+ and (jyoken = @jyoken or syohin <> @shyohin)
30
30
  )
31
31
  ```
32
32
  SQLServer的には、以下の方が高速かもしれません。
@@ -36,6 +36,6 @@
36
36
  on KEKA.tyumon_code=Tyumon.tyumon_code
37
37
  and KEKA.tyumon_no=Tyumon.tyumon_no
38
38
  and KEKA.tyumon_eda=Tyumon.tyumon_eda
39
- and KEKA.jyoken = @jyoken and KEKA.syohin <> @shyohin
39
+ and (KEKA.jyoken = @jyoken or KEKA.syohin <> @shyohin)
40
40
  WHERE KEKA.tyumon_code is null
41
41
  ```

3

推敲

2020/07/03 04:17

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,3 @@
1
- 「繰り返しで回ってきた」というのがどういう意味よく分かりませんが、
2
1
  SQL的な事で言えば、相関問合せになっていませんので、正しく動作しそうな記述は以下です。
3
2
  ```SQL
4
3
  SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, @jyoken, @shyohin

2

推敲

2020/07/03 04:14

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,3 +1,4 @@
1
+ 「繰り返しで回ってきた」というのがどういう意味よく分かりませんが、
1
2
  SQL的な事で言えば、相関問合せになっていませんので、正しく動作しそうな記述は以下です。
2
3
  ```SQL
3
4
  SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, @jyoken, @shyohin

1

推敲

2020/07/03 04:13

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  SQL的な事で言えば、相関問合せになっていませんので、正しく動作しそうな記述は以下です。
2
2
  ```SQL
3
- SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, jyoken, shyohin
3
+ SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, @jyoken, @shyohin
4
4
  FROM Tyumon
5
5
  WHERE NOT EXISTS (
6
6
  SELECT 1 from KEKA
@@ -19,7 +19,7 @@
19
19
  ```
20
20
  これは冗長なので、以下に置き換えできます。
21
21
  ```SQL
22
- SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, jyoken, shyohin
22
+ SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, @jyoken, @shyohin
23
23
  FROM Tyumon
24
24
  WHERE NOT EXISTS (
25
25
  SELECT 1 from KEKA
@@ -31,7 +31,7 @@
31
31
  ```
32
32
  SQLServer的には、以下の方が高速かもしれません。
33
33
  ```SQL
34
- SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, jyoken, shyohin
34
+ SELECT Tyumon.tyumon_code, Tyumon.tyumon_no, Tyumon.tyumon_eda, @jyoken, @shyohin
35
35
  FROM Tyumon left join KEKA
36
36
  on KEKA.tyumon_code=Tyumon.tyumon_code
37
37
  and KEKA.tyumon_no=Tyumon.tyumon_no