我有这个查询,它完美地工作:

SELECT *
FROM Customer
WHERE SacCode IN
(
    SELECT SacCode
    FROM SacCode
    WHERE ResellerCorporateID = 392
    ORDER BY SacCode
)
AND CustomerID IN
(
    SELECT CxID
    FROM CustAppointments
    WHERE AppRoomID IN
    (
        SELECT AppRoomID
        FROM ClinicRooms
        WHERE ClinID IN
        (
            SELECT ClinID
            FROM AppClinics
            WHERE ClinDate >='20090101'
            AND ClinDate <='20091119'
        )
    )
)


但是,我需要查看ClinDate的值(在最后一个嵌套查询中)...

我该怎么做?

谢谢。

最佳答案

我将使用联接重写查询。然后,您可以访问任何联接表中的任何数据。

例如,您可以这样重写查询:

SELECT c.*, ac.ClinDate
FROM Customer c
  JOIN SacCode sc ON sc.SacCode = c.SacCode
  JOIN CustAppointments ca ON ca.CustomerID = c.CustomerID
  JOIN ClinicRooms cr ON cr.AppRoomID = ca.AppRoomID
  JOIN AppClinic ac ON ac.ClinID = cr.ClinID
WHERE ac.ClinDate >='20090101'
  AND ac.ClinDate <='20091119'
  AND sc.ResellerCorporateID = 392

10-07 17:56