Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sql server内部联接查询未执行_Sql Server - Fatal编程技术网

Sql server sql server内部联接查询未执行

Sql server sql server内部联接查询未执行,sql-server,Sql Server,这个查询有什么问题? 这些是我正在用的桌子- create table PS3_Vehicle ( ID int IDENTITY(1,1) NOT NULL Primary Key, DealerID varchar(255) NOT NULL, VehicleID varchar(255) UNIQUE NOT NULL, VehicleName varchar(255) NOT NULL, Capacity BIGINT NOT NULL

这个查询有什么问题? 这些是我正在用的桌子-

create table PS3_Vehicle 
(
    ID int IDENTITY(1,1) NOT NULL Primary Key,
    DealerID varchar(255) NOT NULL,
    VehicleID varchar(255) UNIQUE NOT NULL,
    VehicleName varchar(255) NOT NULL,
    Capacity BIGINT NOT NULL    
);

create table PS3_VehicleBooking
(
  ID int IDENTITY(1,1) NOT NULL Primary Key,
  BookingID varchar(255) NOT NULL UNIQUE,
  VehicleID varchar(255) NOT NULL,
  StartDate date NOT NULL,
  EndDate date NOT NULL
);

CREATE TABLE PS3_Dealer(
    ID int IDENTITY(1,1) NOT NULL Primary KEY,
    DealerID varchar(255) NULL,
    DealerName varchar(255) NOT NULL,
    ContactNo varchar(255) NOT NULL,
    NoOfVehicles bigint NOT NULL,
    CommittedDate date NOT NULL
);

SELECT DealerID, PS3_Vehicle.VehicleID, VehicleName, StartDate, EndDate
FROM PS3_Vehicle
INNER JOIN PS3_VehicleBooking ON PS3_Vehicle.VehicleID != PS3_VehicleBooking.VehicleID AS W
INNER JOIN PS3_Dealer ON W.DealerID = PS3_Dealer.DealerID
  AND CommittedDate > GETDATE();
试试这个:

SELECT w.DealerID, w.VehicleID, w.VehicleName, b.StartDate, b.EndDate
FROM PS3_Vehicle w
INNER JOIN PS3_VehicleBooking b ON w.VehicleID != b.VehicleID 
INNER JOIN PS3_Dealer d ON W.DealerID = d.DealerID
  AND CommittedDate > GETDATE();
试试这个:

SELECT w.DealerID, w.VehicleID, w.VehicleName, b.StartDate, b.EndDate
FROM PS3_Vehicle w
INNER JOIN PS3_VehicleBooking b ON w.VehicleID != b.VehicleID 
INNER JOIN PS3_Dealer d ON W.DealerID = d.DealerID
  AND CommittedDate > GETDATE();

我想你可以在
PS3_车辆
PS3_车辆预订
之间进行一个简单的
左连接
,其中
PS3_车辆预订
与该车辆不匹配:

SELECT v.DealerID, v.VehicleID, v.VehicleName, vb.StartDate, vb.EndDate
FROM PS3_Vehicle v
LEFT JOIN PS3_VehicleBooking vb ON v.VehicleID = vb.VehicleID
WHERE vb.VehicleID IS NULL

这将为您提供
PS3\u VehicleBooking
中不存在的车辆,这使得
startDate
endDate
总是
NULL
我想你可以通过在
PS3_车辆
PS3_车辆预订
之间的
PS3_车辆预订
简单的
PS3_车辆预订
与该车辆不匹配:

SELECT v.DealerID, v.VehicleID, v.VehicleName, vb.StartDate, vb.EndDate
FROM PS3_Vehicle v
LEFT JOIN PS3_VehicleBooking vb ON v.VehicleID = vb.VehicleID
WHERE vb.VehicleID IS NULL
SELECT v.DealerID, v.PS3_Vehicle.VehicleID, v.VehicleName, b.StartDate, b.EndDate
FROM PS3_Vehicle v
Left JOIN PS3_VehicleBooking b ON v.VehicleID = b.VehicleID
INNER JOIN PS3_Dealer d ON v.DealerID = d.DealerID
Where b.VehicleID is null
AND d.CommittedDate > GETDATE()
这将为您提供
PS3\u VehicleBooking
中不存在的车辆,从而使
startDate
endDate
始终
NULL

SELECT v.DealerID, v.PS3_Vehicle.VehicleID, v.VehicleName, b.StartDate, b.EndDate
FROM PS3_Vehicle v
Left JOIN PS3_VehicleBooking b ON v.VehicleID = b.VehicleID
INNER JOIN PS3_Dealer d ON v.DealerID = d.DealerID
Where b.VehicleID is null
AND d.CommittedDate > GETDATE()
将向您提供所有未售出的车辆,并告知未售出车辆的经销商

Ps当您开始执行这样的查询时,使用别名或表名完全限定您的所有名称,使下一个开发人员的工作更加容易

Oh和startdate以及enddate在这个查询中始终为空,因此它们是无意义的

SELECT D.DealerID, V.VehicleID, V.VehicleName, vb.StartDate, vb.EndDate
FROM PS3_Dealer D LEFT JOIN  PS3_Vehicle V 
ON D.DealerID = V.DealerID 
LEFT JOIN PS3_VehicleBooking vb
ON V.VehicleID = VB.V.VehicleID
WHERE vb.V.VehicleID IS NULL
AND CommittedDate > GETDATE();
将向您提供所有未售出的车辆,并告知未售出车辆的经销商

Ps当您开始执行这样的查询时,使用别名或表名完全限定您的所有名称,使下一个开发人员的工作更加容易


Oh和startdate和enddate在此查询中将始终为空,因此是无意义的。

您想要的输出是什么?在第一次内部联接中,您有!=在你的“开”条款里???此外,Select语句中DealerID的列名不明确,因为此列存在于多个同名表中DealerID的车辆id不存在于车辆预订表中,但我希望结果开始日期和结束日期列也不包含任何内容所需的输出是什么?在第一次内部联接中,您有!=在你的“开”条款里???Select语句中DealerID的列名也不明确,因为此列存在于多个同名表中。这些DealerID的车辆id不存在于车辆预订表中,但我希望结果开始日期和结束日期列也不包含任何内容
SELECT D.DealerID, V.VehicleID, V.VehicleName, vb.StartDate, vb.EndDate
FROM PS3_Dealer D LEFT JOIN  PS3_Vehicle V 
ON D.DealerID = V.DealerID 
LEFT JOIN PS3_VehicleBooking vb
ON V.VehicleID = VB.V.VehicleID
WHERE vb.V.VehicleID IS NULL
AND CommittedDate > GETDATE();