首先,我对 sql 的了解不多,只有基本的东西。我需要有关如何实施程序的帮助。我创建了两个表:Drivers 和 Cars。IDDriver IDCar 我需要有关如何实现此场景的帮助:
我需要创建存储过程:创建、更新和删除一个班次。一天必须两班倒:两班一车,一班司机。
有什么帮助吗?
首先,我对 sql 的了解不多,只有基本的东西。我需要有关如何实施程序的帮助。我创建了两个表:Drivers 和 Cars。IDDriver IDCar 我需要有关如何实现此场景的帮助:
我需要创建存储过程:创建、更新和删除一个班次。一天必须两班倒:两班一车,一班司机。
有什么帮助吗?
我想你想要一个这样的模式
CREATE TABLE [Driver]
(
[Id] INT IDENTITY(1,1) PRIMARY KEY
, [Name] NVARCHAR(50) NOT NULL
)
CREATE TABLE [Car]
(
[Id] INT IDENTITY(1,1) PRIMARY KEY
, [Registration] NVARCHAR(14) NOT NULL
)
CREATE TABLE [ShiftType]
(
[Id] INT IDENTITY(1,1) PRIMARY KEY
, [StartTime] TIME NOT NULL
, [StartDayOfWeek] TINYINT NOT NULL
, [EndTime] TIME NOT NULL
, [EndDayOfWeek] TINYINT NOT NULL
)
CREATE TABLE [Shift]
(
[Id] INT IDENTITY(1,1) PRIMARY KEY
, [DriverId] INT NOT NULL REFERENCES [Driver]([Id])
, [CarId] INT NOT NULL REFERENCES [Car]([Id])
, [ShiftId] INT NOT NULL REFERENCES [Shift]([Id])
)
您可以像这样插入一些基本数据
INSERT [Driver] VALUES ('Bob')
INSERT [Car] VALUES ('ABC1234')
INSERT [ShiftType] VALUES ('08:00:00', 0, '20:00:00', 0)
INSERT [ShiftType] VALUES ('20:00:00', 0, '08:00:00', 1)
INSERT [Shift] VALUES (1, 1, 1)
INSERT [Shift] VALUES (1, 1, 2)
像这样拿出来
SELECT
[D].*
, [C].*
, [ST].*
FROM
[Shift] [S]
JOIN
[Driver] [D]
ON [D].[Id] = [S].[DriverId]
JOIN
[Car] [C]
ON [C].[Id] = [S].[CarId]
JOIN
[ShiftType] [ST]
ON [ST].[Id] = [S].[ShiftTypeId]
这应该为您提供一个很好的起点,让您自己尝试一些存储过程,并在结构良好的问题中发布任何尝试。