下面是我的SQL表:多個內部子查詢沒有返回預期
CREATE TABLE [dbo].[My_Employee_Schedule] (
[Emp_Sch_Id] INT IDENTITY (1, 1) NOT NULL,
[Schedule_Date] DATETIME NULL,
[Start_Time] DATETIME NULL,
[End_Time] DATETIME NULL,
[Emp_ID] INT NULL,
[Job_ID] INT NULL,
PRIMARY KEY CLUSTERED ([Emp_Sch_Id] ASC),
FOREIGN KEY ([Emp_ID]) REFERENCES [dbo].[My_Employee] ([Employee_Id]) ON DELETE CASCADE,
FOREIGN KEY ([Job_ID]) REFERENCES [dbo].[My_Job_Type] ([Job_Type_Id]) ON DELETE CASCADE
);
CREATE TABLE [dbo].[My_Job_Type] (
[Job_Type_Id] INT IDENTITY (1, 1) NOT NULL,
[Job_Title] NVARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([Job_Type_Id] ASC)
);
我創建ASP.NET C#web應用程序,並正嘗試做與此數據如下:
在 E採用的FK- 顯示Schedule_Date在外ASP中繼器
- 然後顯示JOB_TITLE(FROM THE My_Job_Type表) mployee_Schedule表。
而不是顯示與下面幾天連接的作業,所有作業正在顯示。
這裏是我當前的SQL(這是顯示 「服務員」, 「驅動程序」 & 「布瑟」):
SELECT Job_Title
FROM My_Job_Type
WHERE Job_Type_Id IN (
SELECT Job_Id
FROM My_Employee_Schedule
WHERE Schedule_Date IN (
SELECT DISTINCT CAST(Schedule_Date AS DATE) As Schedule_Date
FROM My_Employee_Schedule
WHERE Start_Time BETWEEN @startReportDate AND @endReportDate))
這裏是當前數據:
Emp_Sch_Id Schedule_Date START_TIME END_TIME EMP_ID JOB_ID
1 2017年3月6日00:00:00 2017年3月6日九點00分00秒2017年3月6日10:00:00 5 2
2 2017年3月6日00:00 :00 03/06/2017 11:30:00 03/06/2017 12:30:00 6 1
3 03/06/2017 00:00:00 03/06/2017 14:00:00 03/06/2017 15:00:00 5 3
4 03/06/2017 00:00:00 03/06/2017 12:00:00 03/06/2017 13:00:00 4 2
5 03/06/2017 00:00:00 03/06/2017 12:15:00 03/06/2017 15:15:00 4 2
Job_Type_Id JOB_TITLE
1服務員
2驅動
3布瑟
在My_Job_Type表中,「Waiter」,「Driver」和「Busser」是唯一的行。我認爲這個當前的SQL語句顯示了每個div中的所有行。但是,Job_Id [外鍵]在Employee_Schedule表中的每一行附加了一個特定的Job。我不想在每個div中顯示,而只想顯示其FK與Employee_Schedule行關聯的作業。 – user2911539
例如,只有_Waiter_應顯示在星期六下方,因爲Schedule_Date的_Employee_Schedule_行是3/6/2017,其** Job_ID **等於1 – user2911539
您可以將數據發佈到這些表中嗎?沒有它,我們很難知道結果是否正確。 – scsimon