【发布时间】:2017-11-17 12:48:29
【问题描述】:
我想要的是,使用参数 @PackageId 作为 Packages 表中的连接条件参数,同时将 Packages 表与 Devices 连接(在 FROM Packages 周围的某处加入 Packages.PackageId=Devices.PackageId 上的设备)
create PROC [dbo].[Usp_MissingPackageList]
(@DeviceName AS varchar(50),
@PackageId as int )
AS
BEGIN
SELECT Packages.PackageId
,Packages.DisplayName
,Packages.PublishedBy
,convert(VARCHAR(10),Packages.PublishedOn, 101) PublishedOn
FROM Packages Join Devices on Packages.PackageId=Devices.PackageId
join [dbo].[PersonalizationStatuses] on Devices.SerialKey=PersonalizationStatuses.DeviceSerialNo
where (Packages.PackageId>@PackageID) and (Packages.FlightType=PersonalizationStatuses.FleetType or Packages.FlightType='Common')
ORDER BY PackageId ASC
END
我的要求是从具有 PackageId>@PackageId 的 Package 表中获取所有 tha 包
【问题讨论】:
-
我不清楚你想要什么,如果你想获得匹配,你可以在 Packages.PackageId=@packageid 上加入设备并删除 where (Packages.PackageId>@PackageID) 。 . 或在 Packages.PackageId=Devices.PackageId 上加入设备并将位置更改为位置 (Packages.PackageId = @PackageID)。
-
@P.Salmon 很抱歉回复晚了,我的要求是在 Packages.PackageId(= @PackageId)=Devices.PackageId 时将 Packages 表与设备一起加入。然后从 Packages 表中获取所有 PackageId >@PackageId 以及 where clouse 中的其他条件也满足的包。
标签: sql sql-server join stored-procedures