Результат Sql запроса не совпадает с итогом
Привет, ребята, у меня есть проблема здесь в моем sql-запросе. Прежде чем мой запрос должен замедлиться, чтобы выполнить его, поэтому я повторяю его и успешно запускаю гораздо быстрее, чем оригинал. Моя проблема сейчас заключается в том, что данные или общая сводка за месяц не совпадают с общей суммой моего excel.
Общая сумма, которую я получаю от своего sql - запроса, составляет 14,960,304.41
Общая сумма, которую я получил от excel, составляет 15,212,500.00
Я попробовал использовать EXPLAIN и вот мой результат
TABLE tin ti po tp
TYPE ALL eq_ref eq_ref eq_ref
NULL PRIMARY PRIMARY,tertiary PRIMARY
rows 20248 1 1 1
filtered 100 100 100 100
Extra Using where; Using temporary; Using filesort Using where Using where Using where
Что я уже пробовал:
SELECT IFNULL(tp.remarks, '') AS remarks, tin.qty, IFNULL(tin.unit_description, '') AS unit_description, IFNULL(tp.description, '') AS description, tin.unit_price, tin.amount, IFNULL(ti.supplier, '') AS supplier, IFNULL(po.remarks, '') AS remarks, IFNULL(ti.invoice_number, '') AS invoice_number, IFNULL(ti.wrr_number, '') AS wrr_number, IFNULL(po.po_date, '') AS po_date, IFNULL(ti.si_date, '') AS si_date, IFNULL(po.po_locations, '') AS po_locations, IFNULL(ti.remarks, '') AS remarks FROM gen.purchase_order po JOIN gen.tbl_invoiceheadersup ti ON po.id = ti.po_id JOIN gen.tbl_invoicedetailssup tin ON ti.id = tin.invoice_details_id JOIN gen.tbl_purchase_request_details tp ON tin.invoice_details_id = tp.id WHERE (po_date BETWEEN CAST('2019-06-01' AS DATE) AND CAST('2019-06-30' AS DATE)) AND ti.remarks LIKE CAST('' AS char) AND po_locations LIKE CAST('%Gtsi%' AS char) AND tp.description NOT LIKE CAST('%Servicing%' AS char) OR po_locations LIKE CAST('%Gtsi%' AS char) AND tp.description NOT LIKE CAST('%Servicing%' AS char) AND (ti.remarks LIKE CAST('%For Jun%' AS char) OR ti.remarks LIKE CAST('%Recovery%' AS char) OR ti.remarks LIKE CAST('%Capex%' AS char) OR ti.remarks LIKE CAST('%Charge%' AS char)) ORDER BY po_date
F-ES Sitecore
Я бы рекомендовал работать с гораздо меньшим результирующим набором из 10-100 записей, которые также создают несоответствие, и попытаться понять, что происходит из этого. Почти невозможно сказать, что может быть неправильно из огромного набора результатов.