Article ID: 180300
Article Last Modified on 10/3/2003
SELECT anl.id, anl.type, production =
(SELECT
CASE
WHEN SUM(production) >99999 THEN 1
WHEN SUM(production) <=99999 AND SUM(production) > 500 THEN 2
ELSE 3
END
FROM anl_ar
WHERE anl_ar.id = anl.id
AND anl_ar.type = anl.type
)
FROM lan, anl, tak
WHERE anl.lan = lan.lan
AND tak.tak_id = anl.tak_id
To avoid the problem, you can rewrite the above query as:
SELECT anl.id, anl.type, production_sum =
(SELECT SUM(production)
FROM anl_ar
WHERE anl_ar.id = anl.id
AND anl_ar.type = anl.type
)
INTO #temp1
FROM lan, anl, tak
WHERE anl.lan = lan.lan
AND tak.tak_id = anl.tak_id
SELECT id, type, production =
CASE
WHEN production_sum >99999 THEN 1
WHEN production_sum <=99999 AND production_sum > 500 THEN 2
ELSE 3
END
FROM #temp1
Keywords: kbbug KB180300