Cần giúp đở 1 câu truy vấn SQL

luckyars1989

New Member
Hội viên mới
Yêu cầu quản lý bóng đá :
Cầu thủ trẻ nhất từng ghi bàn tại AFF Cup

Yêu cầu này liên quan đến các bảng :
Cầu Thủ (CauThu) : Mã Cầu Thủ (MaCauThu) , Tên Cầu Thủ (Ten) , Ngày Sinh (NgaySinh)
Trận Đấu (TranDau) : Mã Trận (MaGiai) , Tên Trận (TenTran)
Chi Tiết Trận (CTCauThu) : Mã Giải (MaGiai) , Mã Trận (MaTran)
Bàn Thắng : Mã Trận(MaTran) , Mã Cầu Thủ Ghi bàn (MaCauThu)

CTTran lien hệ 1-1 với TranDau
TranDau liên hệ 1-n với BanThang
CauThu lien he 1-n voi BanThang
Hay nói cách khác là BanThang la mối kết hợp giữa TranDau va CauThu

Yêu cầu này mình gặp khó khăn ở chổ là phải tìm ra cầu thủ trẻ nhất ghi bàn tương ứng với thời điễm ghi bàn của anh ta . Tức là có nghĩa năm 2006 anh ấy tham gia và ghi bàn sang năm 2008 anh cũng tham gia và ghi bàn thì tuổi tương ứng của anh ấy ở năm 2006 = 2006-năm sinh của anh ấy và tương tự 2008 cũng phải lấy 2008-năm sinh . Mình sử dụng Case... When... Then... nhưng vẫn báo lỗi . Các bạn kiễm tra phụ mình nhé !

SELECT CTTran.MaGiai , CauThu.Ten ,(Case When CTTran.MaGiai="A06" Then (2006-Year(CauThu.NgaySinh)) When CTTran.MaGiai="A08" Then (2008-Year(CauThu.NgaySinh)) End) as Tuoi

FROM TranDau INNER JOIN ((CauThu INNER JOIN BanThang ON CauThu.MaCauThu = BanThang.MaCauThu) INNER JOIN CTTran ON BanThang.MaTran = CTTran.MaTran) ON (TranDau.MaTran = CTTran.MaTran) AND (TranDau.MaTran = BanThang.MaTran)

(Câu trên đây là mới lập danh sách các cầu thủ ghi bàn theo độ tuổi ứng với các năm 2006 và 2008)
 
Ðề: Cần giúp đở 1 câu truy vấn SQL

Thực ra chỉ cần bảng 1 với bảng 4 thôi mà:
Select top 1 Tencauthu, Date()-ngaysinh as Tuoi, Matran from tbl1, tbl4 order by tuoi
Các thông tin khác có thể dựa vào thằng này để join
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top