Я довольно новичок в sql и целый день погрузился в попытку выяснить, как это сделать. У меня есть 3 таблицы, которые выглядят примерно так:T-SQL: объедините три таблицы и ограничьте самое раннее столкновение
Таблица 1
customer_id department_id start_dts 1 2 2011-07-23 14:30:00 3 1 2011-07-24 10:15:00 3 1 2011-08-18 11:14:00 2 3 2012-05-04 05:45:00 1 3 2010-06-09 15:20:00
Таблица 2
department_id deparment_nm 1 a 2 b 3 c
Таблица 3
customer_id customer_nm 1 betty 2 fred 3 dino
Я хочу, чтобы генерировать список самых ранних энко унтер для каждого отдела и связанного с именем клиента для встречи таким образом, что это будет выглядеть примерно так (приказ отдела не имеет значения): department_nm customer_nm start_dts a dino 2011-07-24 10:15:00 b betty 2011-07-23 14:30:00 c betty 2010-06-09 15:20:00
Я первый попытался присоединиться к таблице 2 на таблице 1, DEPARTMENT_ID затем внутренняя таблица соединения 3 на customer_id и использование функции min для start_dts в выражении select, но это дает мне каждую первую встречу клиентов в каждом отделе. Затем я попробовал различные итерации вложенных объединений и попытался использовать условие over/partition, чтобы получить то, что я хочу, но я не думаю, что правильно понимаю эту концепцию. Любое понимание очень ценится.
Я не думаю, что вы хотите разделить на 'customer_id', он просто хочет, чтобы первый клиент столкнуться отдел .. а также заказ по start_dts ASC – JamieD77
Спасибо оба, очень много. Извиняюсь за то, что вы забиваете вещи вопросом, который задавали много раз раньше - я искал, но думаю, что я достаточно зелёный, потому что я, вероятно, не очень быстро искал. – PetuniaBegunia