Таблица Aвнутреннее соединение в MySQL
Calid | EffectiveFrom
---
2 | 10 Jun 2016
---
5 | 20 Nov 2016
------
7 | 05 Jan 2017
--
CALID 2 должен сопровождаться человека от 10 июня года, от 20 ноября CALID 5 должен следовать и так далее ....
Таблица B содержит подробную информацию о калибровке (все рабочие даты).
Table B
CAlid | WorkingDate
2 | 1 Jan 2016
2 | 2 Jan 2016
2 | 4 Jan 2016 till 31 Dec all working dates are present
5 | 1 Jan 2016
5 | 2 Jan 2016
5 | 3 Jan 2016
5 | 5 Jan 2016 till 31 dec all working dates are present
и т. Д. Все рабочие даты калибра 7 представлены. Отчет должен быть сгенерирован, чтобы найти общие рабочие дни для человека, который следил за калибром, как в таблице A. Отчет должен содержать такие дни, как Calid | Дата (из таблицы B). Это должно быть достигнуто с помощью оператора select (без процедуры, поскольку это часть представления). В таблице A у меня нет значения для столбца даты.
Детали: Таблица B содержит все рабочие дни (читай даты) данного года. Calid - это идентификатор календаря для определенного календаря. Say calid 2 означает список всех рабочих дней в Японии, а Calid 5 дает списки всех рабочих дней/дат в течение года в Дубае. Сотрудник перемещается в разных местах из Японии в Дубай, поэтому его/ее рабочие дни меняются соответственно. В конце года должно быть рассчитано, сколько дней должно было работать работник. Таблица A содержит историю календаря сотрудников в течение года. Запись добавляется в день, когда сотрудник переезжает в другое место и начинает следить за другим календарем местоположения. EffectiveFrom указывает дату, с которой выполняется конкретный календарь. Эта часть логики должна быть объединена с другим кодом в представлении, поэтому ограничения вида не повреждены.
Я отредактировал этот вопрос, чтобы прояснить его как комментарий @philipxy.
Ваше сообщение нечеткое. Пожалуйста, используйте полные простые предложения, а не фрагменты, такие как «(все рабочие даты)» и «до 31 декабря все рабочие даты присутствуют». Мы должны * догадываться * на то, что вы пытаетесь сказать. Является ли таблица B только для 2016 года? Что это связано с A? Это информация о 2016 году, но с каждым рабочим днем? Тогда почему 2 и 5 не начинаются в июне и ноябре? Что означает «(без процедуры, поскольку это часть зрения)» означает? Зачем говорить «В таблице A у меня нет эффективной колонки даты»? - мы знаем. Также неясно, когда строка переходит в A, B или результат. И - в чем ваш вопрос? Какие части вы можете сделать? Где вы застряли? – philipxy
@ KaranShah Я очень близок к тому, чтобы это сделать ... Ура! CTE - это ключ. Предоставьте окончательное обновление в понедельник. Gn. – EetSandhu
Это то, что я пробовал, и он работает :) – EetSandhu