Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Truy vấn SQL Server

23:09 07-02-2018 749 lượt xem 3 bình luận 02:40 22-02-2018

Em đang có một danh sách gồm lịch trình các chuyến bay. mỗi chuyến bay có 2 trường from và to. người dùng có thể chọn nơi đi và đến từ giao diện. nếu nơi đi và đến được chọn không có chuyến bay nào trong lịch trình phù hợp thì em sẽ phải tìm 1 điểm dừng gián tiếp để người dùng vẫn có thể có chuyến bay như mong muốn. VD khách đi từ A -> C: thì sẽ nối 2 chuyến bay A -> B và B->C để tạo chuyến bay phù hợp. E muốn tìm cách truy vấn tập các điểm dừng có các chuyến bay như vậy để áp dụng thuật toán đường đi ngắn nhất tìm đường. Vậy e sẽ phải truy vấn như thế nào ạ?

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Vector đã bình luận 02:40 22-02-2018

Mình nghĩ đây không phải là tìm đường đi ngắn nhất đâu mà là tìm tất cả các đường đi có thể có rồi cho người dùng chọn cái nào họ thích mừ.
Vì đường đi ngắn nhưng còn tiền. địa điểm, thời gian nữa. Nên vẫn phải show toàn bộ lên để khách hàng lựa.

nguyenkimluong98 đã bình luận 14:51 09-02-2018

em đang viết bằng C# winform...đến đây thì mắc mà không tìm được cách nào giải vì e cx mới tìm hiểu về sql server

Lê Châu Moderator, Author đã bình luận 10:40 08-02-2018
DECLARE @FromUser float, @ToUser integer //mình khai báo biến này để lưu thông tin chuyến đi từ User
SELECT @ID = F.id //mình giả thiết table bạn có ID vì chưa rõ table có bao nhiêu trường
  FROM Flight as F
 WHERE F.From = @FromUser and F.To = @ToUser;

if @ID is Nulll //Không có chuyến bay nào hết
begin
 SELECT *
 FROM Flight as A, Flight as B
 Where A.From = @FromUser
 and A.To = B.From
 and B.To = @ToUser;
end
else
begin
 SELECT *
 FROM Flight as F
 WHERE F.From = @FromUser and F.To = @ToUser;
end

Đây là câu khó vì nó có lập trình SQL không phải truy vấn thông thường nữa. Bản thân mình cũng chưa nắm rõ hết. Hoặc bạn truy vấn lên và xử lý ngôn ngữ lập trình của bạn đang viết còn khả năng hơn

Câu hỏi mới nhất