我在MSSQL View Query中遇到了一个问题,想要获得结果。我从多个Tables查询中选择数据的查询如下:
SELECT dbo.Customer.Code, dbo.Customer.Name, dbo.Customer.Mobile, dbo.Customer.Email, dbo.Customer.Adults, dbo.Customer.Kids, dbo.Customer.Days, dbo.Customer.PackageId,
dbo.Packages.PackagesName, dbo.Customer.ArrivalCityId, ArrivalCity.Citys AS ArrivalCity, dbo.Customer.ArrivalTime, dbo.Customer.ArrivalDate, dbo.Customer.DepartureCityId,
DepartureCity.Citys AS DepartureCity, dbo.Customer.DepartureTime, dbo.Customer.DepartureDate, dbo.Customer.GST, dbo.Customer.Discount, dbo.Customer.Profit, dbo.Customer.Advance,
dbo.Customer.TotalPayment, dbo.ProvideHotel.CityId, HotelCity.Citys AS HotelCity, dbo.ProvideHotel.HotelId, dbo.Hotel.Hotels, dbo.ProvideHotel.RoomTypeId,
HotelCategory.Name AS HotelCategory, dbo.ProvideTransport.PickCityId, PickCity.Citys AS PickCity, dbo.ProvideTransport.DropCityId, DropCity.Citys AS DropCity, dbo.ProvideTransport.TransportId,
dbo.Transport.Transports, dbo.TourProgramme.DayId, DayCategory.Name AS NoOfDays, dbo.TourProgramme.FromCityId, FromCity.Citys AS FromCity, dbo.TourProgramme.ToCityId,
ToCity.Citys AS ToCity, dbo.Customer.Id, dbo.TourProgramme.CustomerId, dbo.TourProgramme.Programme
FROM dbo.Customer INNER JOIN
dbo.Packages ON dbo.Customer.PackageId = dbo.Packages.Id INNER JOIN
dbo.City AS ArrivalCity ON dbo.Customer.ArrivalCityId = ArrivalCity.Id INNER JOIN
dbo.City AS DepartureCity ON dbo.Customer.DepartureCityId = DepartureCity.Id INNER JOIN
dbo.ProvideHotel ON dbo.Customer.Id = dbo.ProvideHotel.CustomerId INNER JOIN
dbo.City AS HotelCity ON dbo.ProvideHotel.CityId = HotelCity.Id INNER JOIN
dbo.Hotel ON dbo.ProvideHotel.HotelId = dbo.Hotel.Id INNER JOIN
dbo.Category AS HotelCategory ON dbo.ProvideHotel.RoomTypeId = HotelCategory.Id INNER JOIN
dbo.ProvideTransport ON dbo.Customer.Id = dbo.ProvideTransport.CustomerId INNER JOIN
dbo.City AS PickCity ON dbo.ProvideTransport.PickCityId = PickCity.Id INNER JOIN
dbo.City AS DropCity ON dbo.ProvideTransport.DropCityId = DropCity.Id INNER JOIN
dbo.Transport ON dbo.ProvideTransport.TransportId = dbo.Transport.Id INNER JOIN
dbo.TourProgramme ON dbo.Customer.Id = dbo.TourProgramme.CustomerId AND dbo.Packages.Id = dbo.TourProgramme.PackagesId INNER JOIN
dbo.Category AS DayCategory ON dbo.TourProgramme.DayId = DayCategory.Id INNER JOIN
dbo.City AS FromCity ON dbo.TourProgramme.FromCityId = FromCity.Id INNER JOIN
dbo.City AS ToCity ON dbo.TourProgramme.ToCityId = ToCity.Id Where dbo.Customer.Id = '2'
它在图像中给出了这样的结果 Query give result 我不想这样,我想要一次又一次地得到哪个值,应该停下来,并且在我用红色圆圈制作的旅行计划中给出单一价值。
答案 0 :(得分:0)
我希望能够正确理解:使用DISTINCT
SELECT DISTINCT dbo.Customer.Code, dbo.Customer.Name, dbo.Customer.Mobile, dbo.Customer.Email, dbo.Customer.Adults, dbo.Customer.Kids, dbo.Customer.Days, dbo.Customer.PackageId,
dbo.Packages.PackagesName, dbo.Customer.ArrivalCityId, ArrivalCity.Citys AS ArrivalCity, dbo.Customer.ArrivalTime, dbo.Customer.ArrivalDate, dbo.Customer.DepartureCityId,
DepartureCity.Citys AS DepartureCity, dbo.Customer.DepartureTime, dbo.Customer.DepartureDate, dbo.Customer.GST, dbo.Customer.Discount, dbo.Customer.Profit, dbo.Customer.Advance,
dbo.Customer.TotalPayment, dbo.ProvideHotel.CityId, HotelCity.Citys AS HotelCity, dbo.ProvideHotel.HotelId, dbo.Hotel.Hotels, dbo.ProvideHotel.RoomTypeId,
HotelCategory.Name AS HotelCategory, dbo.ProvideTransport.PickCityId, PickCity.Citys AS PickCity, dbo.ProvideTransport.DropCityId, DropCity.Citys AS DropCity, dbo.ProvideTransport.TransportId,
dbo.Transport.Transports, dbo.TourProgramme.DayId, DayCategory.Name AS NoOfDays, dbo.TourProgramme.FromCityId, FromCity.Citys AS FromCity, dbo.TourProgramme.ToCityId,
ToCity.Citys AS ToCity, dbo.Customer.Id, dbo.TourProgramme.CustomerId, dbo.TourProgramme.Programme
FROM dbo.Customer INNER JOIN
dbo.Packages ON dbo.Customer.PackageId = dbo.Packages.Id INNER JOIN
dbo.City AS ArrivalCity ON dbo.Customer.ArrivalCityId = ArrivalCity.Id INNER JOIN
dbo.City AS DepartureCity ON dbo.Customer.DepartureCityId = DepartureCity.Id INNER JOIN
dbo.ProvideHotel ON dbo.Customer.Id = dbo.ProvideHotel.CustomerId INNER JOIN
dbo.City AS HotelCity ON dbo.ProvideHotel.CityId = HotelCity.Id INNER JOIN
dbo.Hotel ON dbo.ProvideHotel.HotelId = dbo.Hotel.Id INNER JOIN
dbo.Category AS HotelCategory ON dbo.ProvideHotel.RoomTypeId = HotelCategory.Id INNER JOIN
dbo.ProvideTransport ON dbo.Customer.Id = dbo.ProvideTransport.CustomerId INNER JOIN
dbo.City AS PickCity ON dbo.ProvideTransport.PickCityId = PickCity.Id INNER JOIN
dbo.City AS DropCity ON dbo.ProvideTransport.DropCityId = DropCity.Id INNER JOIN
dbo.Transport ON dbo.ProvideTransport.TransportId = dbo.Transport.Id INNER JOIN
dbo.TourProgramme ON dbo.Customer.Id = dbo.TourProgramme.CustomerId AND dbo.Packages.Id = dbo.TourProgramme.PackagesId INNER JOIN
dbo.Category AS DayCategory ON dbo.TourProgramme.DayId = DayCategory.Id INNER JOIN
dbo.City AS FromCity ON dbo.TourProgramme.FromCityId = FromCity.Id INNER JOIN
dbo.City AS ToCity ON dbo.TourProgramme.ToCityId = ToCity.Id Where dbo.Customer.Id = '2'