Это не ответ, а комментарий, который не помещается в разделе комментариев.
Если у вас есть подзапросы, включенные в подзапросы, я бы посоветовал перефразировать весь запрос, используяCTE (общие табличные выражения). Например, ваш запрос может выглядеть следующим образом:
WITH
t as (
SELECT TOP (100) PERCENT
w.dept_no,
w.unit,
w.amt_charge
FROM trans w
WHERE (transacti3 = 'Rent Due')
GROUP BY w.dept_no, w.unit, w.amt_charge
ORDER BY w.dept_no, w.unit, w.amt_charge
),
q as (
SELECT TOP (100) PERCENT
t.dept_no,
t.unit,
t.amt_charge,
l.rent_amoun
FROM t
INNER JOIN lease_unit AS l ON t.dept_no = l.dept_no AND t.unit = l.unit
ORDER BY t.dept_no, t.unit, t.amt_charge DESC
)
SELECT x.dept_no,
x.unit,
x.amt_charge,
q.rent_amoun,
CONVERT(DATE, x.transacti2, 101) AS transacti2
FROM q
INNER JOIN trans AS x ON x.dept_no = q.dept_no AND x.unit = q.unit
WHERE x.amt_charge IS NOT NULL
AND x.transacti3 = 'Rent Due'
ORDER BY x.dept_no, x.unit, x.transacti2 DESC
Таким образом, вы можете сначала проверить подзапросы, чтобы убедиться, что они работают правильно. Например, чтобы проверить q
:
WITH
t as (
SELECT TOP (100) PERCENT
w.dept_no,
w.unit,
w.amt_charge
FROM trans w
WHERE (transacti3 = 'Rent Due')
GROUP BY w.dept_no, w.unit, w.amt_charge
ORDER BY w.dept_no, w.unit, w.amt_charge
),
q as (
SELECT TOP (100) PERCENT
t.dept_no,
t.unit,
t.amt_charge,
l.rent_amoun
FROM t
INNER JOIN lease_unit AS l ON t.dept_no = l.dept_no AND t.unit = l.unit
ORDER BY t.dept_no, t.unit, t.amt_charge DESC
)
select * from q -- this line queries q. Or you can check t here...
Убедитесь, что каждая часть делает правильные вещи, используя последний SELECT
. Тогда вы можете проверить все это.