Я пытаюсь составить список инвентаря для подсчета при условии, что товар был продан за последние 2 месяца:
Я использую Pervasive SQL, и это таблица BusinessVision.
Этот запрос работает, но я не знаю, как объединить, чтобы отображался один элемент:
SELECT "INVENTORY"."CODE", "INVENTORY"."INV_DESCRIPTION",
"INVENTORY"."BVSTKUOM", "INVENTORY"."INV_COMMITTED",
"INVENTORY"."ONHAND",
"SALES_HISTORY_HEADER"."IN_DATE"
FROM "INVENTORY" INNER JOIN "SALES_HISTORY_DETAIL" ON "SALES_HISTORY_DETAIL"."CODE" = "INVENTORY"."CODE" INNER JOIN "SALES_HISTORY_HEADER" ON "SALES_HISTORY_HEADER"."NUMBER" = "SALES_HISTORY_DETAIL"."NUMBER"
where "INVENTORY"."PROD" like 'A6O%' AND "SALES_HISTORY_HEADER"."IN_DATE" > '20090731'
Ok. Этот запрос даст мне повторные результаты с номером детали с разными датами. Я просто хочу иметь одно вхождение для каждого номера детали, если оно продано за последние 2 месяца.
Например:
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000 20090810
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000 20090811
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000 20090812
Я бы предпочел просто так:
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
и в следующем ряду следующий товар.
Как я могу это сделать?
РЕДАКТИРОВАННАЯ ЧАСТЬ ПОСЛЕ НЕКОТОРЫХ ОТВЕТОВ:
Спасибо за предложение о DISTINCT.
Я не знаю, почему это повторяет результаты еще. См. (Часть) результат запроса (не включая «SALES_HISTORY_HEADER». «IN_DATE»:
CODE INV_DESCRIPTION BVSTKUOM INV_COMMITTED ONHAND
--------------------------------------------------------- --------------- ----------
A6001-O15NP HP 700-101-O White 15" NP yds 0.00000 180.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
А при использовании GROUP BY или DISTINCT я получаю следующие результаты:
CODE INV_DESCRIPTION BVSTKUOM INV_COMMITTED ONHAND
--------------------------------------------------------- --------------- ----------
A6001-O15NP HP 700-101-O White 15" NP yds 0.00000 50.00000
A6001-O15NP HP 700-101-O White 15" NP yds 0.00000 180.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 0.00000
A6001-O15P HP 700-101-O White 15" Perf yds 0.00000 915.00000
Я бы ожидал только 2 ряда, те, у которых 180 и 915.