質問編集履歴
2
質問内容に関係ない記述を削除。
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
伝票番号は他社システムより振り出されるものですが、一定範囲の連番がサイクリックに振り出されるようで、そのため重複の条件として、伝票日付が前後3か月以内の受注のみを対象とすることになっています。
|
4
4
|
|
5
|
-
伝票番号は
|
5
|
+
伝票番号は受注によって付与されないケースも、また、1つの受注に2件以上付与されるケースもありますが、最大2件管理することになっています。
|
6
6
|
|
7
7
|
あれこれ検索のSQLやインデックスをこね回してみても、受注データが3000件弱で4秒ほどかかってしまっており苦戦しております。
|
8
8
|
検索のSQLやインデックスの貼り方、あるいはテーブル構造の見直しでも何らかヒントが頂けたらと思っています。
|
1
SQLの誤りを修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -78,8 +78,8 @@
|
|
78
78
|
)
|
79
79
|
)
|
80
80
|
OR
|
81
|
-
orders.voucher_no2 IS
|
81
|
+
orders.voucher_no2 IS NULL OR (
|
82
|
-
orders.voucher_no2 IN (
|
82
|
+
orders.voucher_no2 NOT IN (
|
83
83
|
SELECT duplicate3.voucher_no1
|
84
84
|
FROM orders duplicate3
|
85
85
|
WHERE duplicate3.customer_id = 2
|
@@ -89,7 +89,7 @@
|
|
89
89
|
AND duplicate3.voucher_date BETWEEN orders.voucher_date - INTERVAL 3 MONTH AND orders.voucher_date + INTERVAL 3 MONTH
|
90
90
|
)
|
91
91
|
OR
|
92
|
-
orders.voucher_no2 IN (
|
92
|
+
orders.voucher_no2 NOT IN (
|
93
93
|
SELECT duplicate4.voucher_no2
|
94
94
|
FROM orders duplicate4
|
95
95
|
WHERE duplicate4.customer_id = 2
|