Как написать SP для этого сценария? - PullRequest
0 голосов
/ 01 июня 2011

У меня есть такая таблица в базе данных

SlNo
Driver_Id
Sun_StartTime
Sun_EndTime
Mon_StartTime
Mon_EndTime
Tue_StartTime
Tue_EndTime 
Wed_StartTime
Wed_EndTime
Thur_StartTime
Thur_EndTime
Fri_StartTime
Fri_EndTime
Sat_StartTime
Sat_EndTime

выше приведены поля в моей базе данных

, но во время перевоплощения я должен повторить, как это

Driver_Id | Sun_StartTime  | Sun_EndTime
Driver_Id | Mon_StartTime  | Mon_EndTime
Driver_Id | Tue_StartTime  | Tue_EndTime
Driver_Id | Wed_StartTime  | Wed_EndTime
Driver_Id | Thur_StartTime | Thur_EndTime
Driver_Id | Fri_StartTime  | Fri_EndTime
Driver_Id | Sat_StartTime  | Sat_EndTime

то есть я должен разделить одну запись на 7 записей Как я могу сделать это с помощью хранимой процедуры. Помогите мне, пожалуйста заранее спасибо

Ответы [ 3 ]

0 голосов
/ 01 июня 2011

Что-то вроде этого должно привести вас в правильном направлении.

SELECT Driver_Id, Sun_StartTime AS StartTime, Sun_EndTime as EndTime, 1 AS DayOfWeek
    FROM YourTable
    WHERE Driver_Id = @YourDriverId
UNION ALL
SELECT Driver_Id, Mon_StartTime AS StartTime, Mon_EndTime as EndTime, 2 AS DayOfWeek
    FROM YourTable
    WHERE Driver_Id = @YourDriverId
UNION ALL
...
SELECT Driver_Id, Sat_StartTime AS StartTime, Sat_EndTime as EndTime, 7 AS DayOfWeek
    FROM YourTable
    WHERE Driver_Id = @YourDriverId
ORDER BY DayOfWeek
0 голосов
/ 01 июня 2011
0 голосов
/ 01 июня 2011

Вы можете использовать Union Query для получения результатов такого типа. Но вы не упомянули пункт where.

Create Proc testing
AS

Select
driverID, Mon_StartTime,Mon_EndTime From YourTableName

Union

Select
    driverID, Tue_EndTime, Tue_EndTime From YourTableName

Union

Select
    driverID, Wed_StartTime, Wed_EndTime From YourTableName

Union

Select
    driverID, Thur_StartTime, Thur_EndTime From YourTableName

Union

Select
    driverID, Fri_StartTime, Fri_EndTime From YourTableName

Union

Select
    driverID, Sat_StartTime, Sat_EndTime From YourTableName

Union 

    Select
    driverID, Sun_StartTime, Sun_EndTime From YourTableName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...