2017-02-21 8 views
0

Я пытаюсь создать систему управления сотрудниками. Система имеет код сервера в JAVA и Database Oracle. со стороны Java Я передаю три элемента: Список Дата, Список местоположений и Список сдвигов.Список чисел в виде строк Oracle

Теперь у меня есть 1 таблица, в которой есть все записи для Сдвигов, которые применимы к определенным местоположениям.

Например, если в месте 1 есть две смены 1, 2 и 2, две позиции сдвига 1, 3, то таблица будет выглядеть так.

Location | Shift 
     1 | 1 
     1 | 2 
     2 | 1 
     2 | 3 

Теперь то, что я хочу, когда я прохожу Дата List (01-01-2017, 01-02-2017) из Java мой запрос должен возвращать структуру таблицы должно выглядеть, как показано ниже.

Date  | Location | Shift 
01-01-2017 |  1 | 1 
01-01-2017 |  1 | 2 
01-01-2017 |  2 | 1 
01-01-2017 |  2 | 3 
01-02-2017 |  1 | 1 
01-02-2017 |  1 | 2 
01-02-2017 |  2 | 1 
01-02-2017 |  2 | 3 

Просьба предложить запрос.

Обратите внимание: Дата Поле не является частью какой-либо таблицы, а размер списка может варьироваться в зависимости от звонка.

Заранее спасибо

+0

Дата - столбец в первой таблице? – Biswabid

+0

Как вы передаете свои списки с Java на Oracle? Вы на самом деле просто передаете два значения, дату начала и окончания; или может быть больше двух? Какие типы данных являются переданными валами и столбцами таблицы? –

+0

Размер списка даты является динамическим, а дата не является частью какой-либо таблицы – Jaydip

ответ

0

После запроса должен работать я думаю:

SELECT DATESTABLE.DATES,LOCATIONS, SHIFTS 
FROM LOCATIONSTABLE 
INNER JOIN 
(
SELECT '01-01-2017' 
UNION ALL 
SELECT '01-02-2017' 
) DATESTABLE 
ON 1 = 1; 

Вы можете использовать заказ на заказ соответственно.

+0

'... inner join ... on 1 = 1' лучше написано как' ... cross join ... '- таким образом очевидно, что крест-соединение является преднамеренным, а не некоторой ошибкой, когда кто-то забыл добавьте фактические условия соединения. – mathguy