Смежные группы строк одна рядом с другой

В одном заказе у меня может быть много клиентов и много товаров. У меня есть 3 таблицы с деталями заказа: Order_details, Order_customers и Order_products. Запрос к моему представлению, используемый в качестве набора данных, возвращает 8 строк, когда в одном заказе у меня есть 2 клиента и 4 продукта. В построителе отчетов я группирую по Order_id, но тогда у меня есть 8 строк (2 клиента x 4 продукта). Если я группирую объявления по Customer_ID и соседней группе по Product_ID, то в первом столбце отображаются идентификаторы клиентов и идентификаторы продуктов. Мой запрос просмотра выглядел следующим образом:

select od.Order_id, oc.Customer_ID, oc.Customer_detail, op.Product, op.Product_detail
from Order_details od
left join Order_products op on od.Order_id = op.Order_id
left join Order_customers oc on od.Order_id = oc.Order_id

Я хочу сгруппировать столбцы, чтобы результат выглядел так:

+-----------+--------------+-----------------+-----------+----------------+
| Order ID  | Customer ID  | Customer detail | Product   | Product detail |
+-----------+--------------+-----------------+-----------+----------------+
|           | Customer_1   | Cusotmer_name   | Product_1 | Product1_nuber |
|  1234     |              |                 | Product_2 | Product2_nuber |
|           | Cusotmer_2   | Cusotmer_name   | Product_3 | Product3_nuber |
|           |              |                 | Product_4 | Product4_nuber |
+-----------+--------------+-----------------+-----------+----------------+

person liquid    schedule 04.07.2019    source источник


Ответы (1)


Можете ли вы попробовать это - начните с деталей, а затем добавьте группы.

Пример:

  1. Сначала добавьте в отчет «Продукт» и «Сведения о продукте».
  2. Затем щелкните правой кнопкой мыши строку «Продукт» и выберите «Добавить родительскую группу» и выберите «Сведения о клиенте» (вы можете добавлять или не добавлять верхний и нижний колонтитулы для группы).
  3. Затем щелкните правой кнопкой мыши строку «Сведения о клиенте» и выберите «Добавить родительскую группу» и выберите «Идентификатор клиента» (вы можете добавлять или не добавлять верхний и нижний колонтитулы для группы).
  4. Затем щелкните правой кнопкой мыши строку «Идентификатор клиента» и выберите «Добавить родительскую группу» и выберите «Идентификатор заказа» (вы можете добавлять или не добавлять верхний и нижний колонтитулы для группы).

Надеюсь это поможет.

person variable    schedule 04.07.2019
comment
Если я понял и сделал именно так, как вы написали, то это не то, что я ожидаю, потому что у меня все еще есть 8 строк для одного идентификатора заказа. - person liquid; 04.07.2019
comment
Что вы хотите, чтобы произошло? - person variable; 04.07.2019
comment
Если я добавлю группировку по идентификатору заказа, затем группировку по идентификатору клиента в качестве дочернего элемента для идентификатора заказа и группировку по идентификатору продукта рядом с идентификатором клиента, тогда у меня будет что-то вроде этого: идентификатор заказа | идентификатор клиента и идентификатор продукта прямо под идентификатором клиента, но я хочу получить результаты, как в теме. - person liquid; 04.07.2019
comment
Можете ли вы опубликовать образец вывода из вашего набора данных. Трудно понять, как вы можете связать клиента с продуктом из вашего запроса. - person Alan Schofield; 05.07.2019