我编写了代码来提取特定帐号注册的牌照数量。它也提供了那辆车的制作。
我正在使用4个表来获取此信息:
问题是, Plate 表。很多条目都有NULL VehicleMakeID 字段。因此无法加入 VehicleMake 表来获取 车辆描述。
我的代码如下:
select ac.AccountNumber
, p.LicPLateno
, p.LicPlateState
, p.LicPlateCountry
, vm.VehicleMakeDesc
, p.VehicleModel
, p.VehicleYear
, v.VehShortDesc
--, ISNULL(p.VehicleMakeId,'-1') VechicleMakeId --(-1 means Other)
, p.VehicleMakeId
from account ac
inner join Plate p on ac.AccountId=p.AccountId
inner join VehClass v on p.VehClassId=v.VehClassID
inner join VehicleMake vm on p.VehicleMakeId=vm.VehicleMakeId
where ac.AccountNumber= '12345678'
and p.PlateStatusId=1 --(For Active Plates only)
and p.EndDate is null --(Plates are not expired)
order by p.LicPlateNo
我得到的结果是:
ABS123 BC CA Other - NULL Cars -1
DEF345 BC CA Other - NULL Cars -1
GHI456 BC CA Other - NULL Cars -1
HIJ567 BC CA Other - NULL Cars -1
结果显示仅有4个平板,但实际上有31个平板。那些其他牌照没有显示,因为其他牌照在VehicleMakeID字段中为NULL。因此,他们没有加入VehicleMake表。
如何获取所有31个牌照的列表,如果VehicleMakeID为NULL,则说明应显示为其他?
答案 0 :(得分:2)
使用INNER JOIN
的{{1}}表更改VehicleMake
:
LEFT JOIN