Member 12931315 Ответов: 2

Я хочу получить ниже описанный результат в хранимой процедуре SQL запроса


Привет
У меня есть таблица, которая содержит строки и столбцы, как показано ниже

emp_no  date         time
00010   01/01/2020   0700
00010   01/01/2020   1200
00010   01/01/2020   1245
00010   02/01/2020   0500


результирующие строки и столбцы должны быть такими, как показано ниже

emp_no   date_in      time_in   date_out   time_out  break_time duration
00010    01/01/2020    0700     02/01/2020   0500      0045      2300


пожалуйста, помогите мне с запросом для хранимой процедуры

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

Аджит

Что я уже пробовал:

Я новичок в этом деле и зацикливание дает мне кошмары

Member 12931315

Привет OriginalGriff

Спасибо за ответ , Это для моей курсовой деятельности
Я новичок в SQL-запросе , я не знаю, как сделать цикл while
просто скажите мне, как пройти через эту таблицу, которая поможет мне

Спасибо

Аджит

2 Ответов

Рейтинг:
0

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.


Рейтинг:
0

W∴ Balboos, GHB

Я дам вам огромную помощь - но вам нужно будет выяснить, как это сделать (как отмечено в ответе 1):

Вам нужно присоединить стол к себе . . .



Member 12931315

Привет
спасибо за ответы

вот что я пытался сделать

Создать таблицу #tempTable1 (
Token_no char(6),
дата дата,
время char(4))

Создать таблицу #tempdata (
Token_no char(6),
дата дата,
время char(4))
вставить в #tempdata (Token_no,Дата, Время) значения ('00001','2020.01.01','0700')
вставить в #tempdata (Token_no,Дата, Время) значения ('00001','2020.01.01','1200')
вставить в #tempdata (Token_no,Дата, Время) значения ('00001','2020.01.01','1245')
вставить в #tempdata (Token_no,Дата, Время) значения ('00001','2020.01.02','0500')


вставить в #tempTable1 (Token_no,дата, время)
выберите #данных tempdata.token_no,#данных tempdata.дата,#данных tempdata.время от данных tempdata
левое соединение #данных tempdata Т1 на Т1.дата =#данных tempdata.дата и T1.token_no =#данных tempdata.token_no

выберите * из #tempTable1
выпадающий стол #tempTable1
drop TABLE #tempdata

пожалуйста, помогите мне

Аджит

W∴ Balboos, GHB

Вот как можно преобразовать несколько связанных строк в таблице в одну строку.
Выберите А. общность, А. вал В. вал С. вал
Из таблицы как
Внутреннее соединение таблицы Б
Об А. общности = Б. общности
Внутреннее соединение таблицы с
Об А. общности = С. общности
-- Предложение where, хотя необязательно в теории будет необходимо
-- чтобы получить те данные, которые вам действительно нужны
Где А. Что-то есть что-то
И Б. Что-то есть something_else
И С. Что-то есть еще одна вещь

Еще один момент: если вы не всегда получаете совпадение для всех столбцов и вам все равно нужны результаты, то вам нужно будет сделать такие вещи, как левое соединение или правое соединение, чтобы подобрать неполные наборы. Теперь, если значение не всегда присутствует для всех "столбцов", которые вы создаете, они все равно будут отображаться с нулем для отсутствующих значений.

Поэкспериментируйте с чем - нибудь простым-как только вы получите это, вы узнаете силу!