Tôi (không thành công) sử dụng truy vấn con tương quan trên bảng Hóa đơn:
Invoices(InvoiceID, VendorID, InvoiceTotal, PaymentTotal, CreditTotal,.... ),
để tìm tổng số hóa đơn chưa thanh toán lớn nhất của tất cả các nhà cung cấp, trong đó điều kiện chưa thanh toán được đưa ra bởi InvoiceTotal-PaymentTotal-CreditTotal <0
:
Select Sum(LargestUnpaid) from
(Select Max(InvoiceTotal) AS LargestUnpaid from Invoices
where InvoiceTotal-(PaymentTotal+CreditTotal)<0 group by vendorID ) ;
Truy vấn bên trong chạy, tốt và xấu, vì truy vấn được cho là tương quan, nhưng toàn bộ truy vấn không chạy và tôi nhận được thông báo lỗi:
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near ')'.
Tôi đang làm gì sai?
6
Chỉ cần FYI, bạn không sử dụng một truy vấn con tương quan ở đó. Đó được gọi là bảng dẫn xuất. Một truy vấn con được gọi là tương quan nếu nó tham chiếu bất kỳ bí danh bảng nào được tìm thấy trong mệnh đề TỪ [truy vấn bên ngoài] và nằm trong bất kỳ phần nào của truy vấn [bên ngoài]: mệnh đề SELECT, toán tử ỨNG DỤNG, mệnh đề WHERE, mệnh đề WHERE, TRÊN điều khoản tham gia.
—
Andriy M
@AndriyM: Bạn nói đúng, thưa ngài, cảm ơn bạn. Ngoài ra, truy vấn trong ngoặc đơn tự chạy)
—
MSIS