* ОБНОВЛЕНИЕ *
При дальнейшем рассмотрении используемая таблица также содержит столбец linenumber
.Смотрите обновленный пример данных ниже.Я чувствую, что это может быть чрезвычайно полезно для решения этого .... просто не знаю, как.Суммируйте номер строки по PO, и если он равен 1, это отдельная строка, если он больше 1, это многострочный .... это нам что-нибудь дает?
Новое здесь ив SQL, поэтому, пожалуйста, прости мое невежество.Надеемся, что это простой ответ.
Нужно создать 3 аналогичных запроса, которые будут возвращать заказы на покупку, содержащие более 1 элемента и:
- Не содержать элементов, контролируемых лотом
- Содержит ВСЕ элементы, контролируемые лотом
- Содержит СМЕСЬ элементов, контролируемых лотом и не контролируемых лотом
Данные выглядят следующим образом ...
PONUMBER ITEMNUMBER LOTCONTROLLED LINENUMBER
PO1.18 OSC1024 0 1
PO1.18 OSC1025 0 2
PO1.18 OSC1026 0 3
PO1.2 OSC1199 0 1
PO1.2 OSC1200 1 2
PO1.21 OSC1201 1 1
PO1.21 OSC1202 1 2
PO1.22 OSC1203 1 1
PO1.23 OSC1204 1 1
PO1.23 OSC1205 0 2
PO1.24 OSC1206 1 1
PO1.24 OSC1207 1 2
PO1.24 OSC1300 0 3
Запрос для элементов, не контролируемых лотом, прекрасно работает ...
SELECT
`POD`.`PONUMBER`,
`POD`.`ITEMNUMBER`,
`POD`.`LOTCONTROLLED`
FROM
table1 AS `POD`
INNER JOIN
(
SELECT `PONUMBER`, COUNT(`PONUMBER`)
FROM table1
WHERE `LOTCONTROLLED` = 0
GROUP BY `PONUMBER`
HAVING (COUNT(`PONUMBER`) > 1)
) as `POD1`
ON `POD`.`PONUMBER` = `POD1`.`PONUMBER`
Я думал, что это будет так же просто, как изменить WHERE LOTCONTROLLED
на = 1, чтобы получить заказы на покупку со всеми элементами, контролируемыми лотом, но этовозвращает несколько заказов на поставку, которые также имеют смешанные строки.
Как можно исключить заказ на покупку из включения, если какая-либо из строк не контролируется партиями?