1
一個已經在SQL-服務器2014,這應該顯示車輛列表定義的查看。這些車輛包含在發票。提議每個車輛和發票包含ID,我想選擇僅車輛被包含在特定發票。過濾器的SQL視圖通過引用的數據
到目前爲止好,但問題是,我只能過濾查看數據,而不是SQL本身,即我需要爲發票的ID篩選的車輛,查看。因此,車載查看必須提供關於引用發票的信息,這樣我可以做這樣的事情:
select v.vehicle_id,
v.vehicle_name,
...
from dbo.Vehicle
where v.invoice_id = 'XYZ'
有沒有可能做到這一點,例如通過使用正常的INNER JOIN來提供一種聚合而不提供重複條目? INNER JOIN顯然會導致車輛被顯示倍增時間,如果它包含在一個以上發票。也應該可以顯示所有車輛而不提供發票ID過濾器。
EDIT 1:
VehicleId | VehicleName
1 | TestCar1
2 | TestCar2
3 | TestCar3
InvoiceId | VehicleId
1 | 1
2 | 1
3 | 2
4 | 3
5 | 3
預期的輸出車輛 - 視圖沒有過濾器:
VehicleId | VehicleName
1 | TestCar1
2 | TestCar2
3 | TestCar3
預期輸出車輛 - 視圖與發票-ID == 1過濾器:
VehicleId | VehicleName
1 | TestCar1