Я пытаюсь извлечь данные из системы, состоящей из различных таблиц, где я использую одну таблицу в качестве основного списка, а затем пытаюсь выбрать несколько событий из другой таблицы, которые все относятся к одной строке в первой таблице.
Составлены таблица заказов и таблицы обработки;
Orders
Ref | Fruit | Shapes | Colours | OrderDate
-----------------------------------------------------------------
22222 | Apple | Round | Red | 2020/02/23
33333 | Pear | Round | Green | 2020/02/23
44444 | Banana | Long | Yellow | 2020/02/23
Processing
Fruit | ProcessID | ProcessDateTime
-----------------------------------------+----------------------------
Apple | Receipt | 2020/02/23 09:34:03
Apple | Repack | 2020/02/23 10:15:23
Apple | Dispatch | 2020/02/23 10:32:11
Pear | Receipt | 2020/03/23 08:34:55
Pear | Repack | 2020/02/23 09:08:43
Pear | Dispatch | 2020/02/23 10:43:21
Banana | Receipt | 2020/02/23 07:23:32
Banana | Repack | 2020/02/23 09:33:28
Banana | Dispatch | 2020/02/23 11:38:01
И извлеченные данные должны быть похожи на формат;
Ref | Fruit | DateOrdered | DateReceipt | DateRepack | DateDispatch
-----------------------------------------------------------------------------------------------------
22222 | Apple | 2020/02/23 | 2020/02/23 09:34:03 | 2020/02/23 10:15:23 | 2020/02/23 10:32:11
33333 | Pear | 2020/02/23 | 2020/02/23 08:34:55 | 2020/02/23 09:08:43 | 2020/02/23 10:43:21
44444 | Banana| 2020/02/23 | 2020/02/23 07:23:32 | 2020/02/23 09:33:28 | 2020/02/23 11:38:01
Код, который я создал, будет начинаться аналогично to;
SELECT
Orders.Ref,
Orders.Fruit,
Orders.Shapes,
Orders.Colours,
.Now I want to select each ProcessID for each Ref and ProcessDateTime date for each of the processes in Processing.
There are 3 processes in the example here, but it will not necesarily always
be 3, it will vary in number of processes.
FROM Orders
LEFT INNER JOIN Processing ON Processing.Fruit = Orders.Fruit
WHERE
Orders.OrderDate BETWEEN date1 AND date2; -- These dates will be identified when running...
Я просмотрел онлайн информацию об условных объединениях, но немного борюсь здесь, и любая помощь будет приветствоваться, спасибо!
Спасибо, Гордон, за ваш ответ на этот вопрос для меня это работает почти правильно, за исключением того факта, что каждая из записей в обработке таблицы помещается на отдельной строке, а не объединяется на одной строке, как я и надеялся. Используя ваше решение, я получаю;
Ref | Fruit | DateOrdered | DateReceipt | DateRepack | DateDispatch
-----------------------------------------------------------------------------------------------------
22222 | Apple | 2020/02/23 | 2020/02/23 09:34:03 | |
22222 | Apple | 2020/02/23 | | 2020/02/23 10:15:23 |
22222 | Apple | 2020/02/23 | | | 2020/02/23 10:32:11
33333 | Pear | 2020/02/23 | 2020/02/23 08:34:55 | |
33333 | Pear | 2020/02/23 | | 2020/02/23 09:08:43 |
33333 | Pear | 2020/02/23 | | | 2020/02/23 10:43:21
44444 | Banana| 2020/02/23 | 2020/02/23 07:23:32 | |
44444 | Banana| 2020/02/23 | | 2020/02/23 09:33:28 |
44444 | Banana| 2020/02/23 | | | 2020/02/23 11:38:01
Вместо того результата, которого я хотел достичь ниже;
Ref | Fruit | DateOrdered | DateReceipt | DateRepack | DateDispatch
-----------------------------------------------------------------------------------------------------
22222 | Apple | 2020/02/23 | 2020/02/23 09:34:03 | 2020/02/23 10:15:23 | 2020/02/23 10:32:11
33333 | Pear | 2020/02/23 | 2020/02/23 08:34:55 | 2020/02/23 09:08:43 | 2020/02/23 10:43:21
44444 | Banana| 2020/02/23 | 2020/02/23 07:23:32 | 2020/02/23 09:33:28 | 2020/02/23 11:38:01