Ik heb nu een subquery gemaakt waarmee in de kolom TopLocation de locatie met de hoogste voorraad wordt weergegeven. Nu zou ik dus een case kunnen maken in de vorm van [SQL]case when wmslocationid = toplocation then news_minonhand else 0[/SQL] maar hoe gaat dit, je kunt niet zomaar een case maken op een kolom die in de select staat met een subquery.
[sql]SELECT DISTINCT
TOP (100) PERCENT dbo.INVENTTABLE.ITEMID, dbo.INVENTTABLE.ITEMNAME, CONVERT(int, dbo.DYN_MINMAXPROPOSALS.NEW_MINONHAND)
AS NEW_MINONHAND, CONVERT(int, dbo.DYN_MINMAXPROPOSALS.NEW_MAXONHAND) AS NEW_MAXONHAND, CONVERT(int, dbo.INVENTSUM.AVAILPHYSICAL)
AS AVAILPHYSICAL, dbo.INVENTDIM.WMSLOCATIONID,
(SELECT TOP (1) INVENTDIM_1.WMSLOCATIONID
FROM dbo.INVENTTABLE AS INVENTTABLE_1 INNER JOIN
dbo.INVENTITEMLOCATION AS INVENTITEMLOCATION_1 ON INVENTTABLE_1.ITEMID = INVENTITEMLOCATION_1.ITEMID AND
INVENTTABLE_1.DATAAREAID = INVENTITEMLOCATION_1.DATAAREAID INNER JOIN
dbo.INVENTSUM AS INVENTSUM_1 ON INVENTITEMLOCATION_1.DATAAREAID = INVENTSUM_1.DATAAREAID AND
INVENTITEMLOCATION_1.ITEMID = INVENTSUM_1.ITEMID INNER JOIN
dbo.INVENTDIM AS INVENTDIM_1 ON INVENTSUM_1.DATAAREAID = INVENTDIM_1.DATAAREAID AND
INVENTSUM_1.INVENTDIMID = INVENTDIM_1.INVENTDIMID
WHERE (INVENTITEMLOCATION_1.WMSPICKINGLOCATION LIKE 'HTC.%') AND (NOT (INVENTDIM_1.WMSLOCATIONID LIKE 'rw')) AND
(NOT (INVENTDIM_1.WMSLOCATIONID LIKE 'repair')) AND (NOT (INVENTDIM_1.INVENTLOCATIONID LIKE 'voda-%')) AND
(NOT (INVENTDIM_1.WMSLOCATIONID LIKE 'spwh')) AND (NOT (INVENTDIM_1.WMSLOCATIONID LIKE 'htc')) AND (INVENTDIM_1.WMSLOCATIONID <> '')
AND (NOT (INVENTDIM_1.INVENTLOCATIONID LIKE 'mw')) AND (INVENTTABLE_1.DATAAREAID = dbo.INVENTTABLE.DATAAREAID) AND
(INVENTTABLE_1.ITEMID = dbo.INVENTTABLE.ITEMID)
ORDER BY CONVERT(int, INVENTSUM_1.AVAILPHYSICAL) DESC) AS TopLocation
FROM dbo.INVENTTABLE INNER JOIN
dbo.INVENTITEMLOCATION ON dbo.INVENTTABLE.ITEMID = dbo.INVENTITEMLOCATION.ITEMID AND
dbo.INVENTTABLE.DATAAREAID = dbo.INVENTITEMLOCATION.DATAAREAID INNER JOIN
dbo.DYN_MINMAXPROPOSALS ON dbo.INVENTTABLE.DATAAREAID = dbo.DYN_MINMAXPROPOSALS.DATAAREAID AND
dbo.INVENTTABLE.ITEMID = dbo.DYN_MINMAXPROPOSALS.ITEMID INNER JOIN
dbo.INVENTSUM ON dbo.INVENTITEMLOCATION.DATAAREAID = dbo.INVENTSUM.DATAAREAID AND
dbo.INVENTITEMLOCATION.ITEMID = dbo.INVENTSUM.ITEMID INNER JOIN
dbo.INVENTDIM ON dbo.INVENTDIM.DATAAREAID = dbo.INVENTSUM.DATAAREAID AND dbo.INVENTDIM.INVENTDIMID = dbo.INVENTSUM.INVENTDIMID
WHERE (dbo.INVENTITEMLOCATION.WMSPICKINGLOCATION LIKE 'HTC.%') AND (NOT (dbo.INVENTDIM.WMSLOCATIONID LIKE 'rw')) AND
(NOT (dbo.INVENTDIM.WMSLOCATIONID LIKE 'repair')) AND (NOT (dbo.INVENTDIM.INVENTLOCATIONID LIKE 'voda-%')) AND
(NOT (dbo.INVENTDIM.WMSLOCATIONID LIKE 'spwh')) AND (NOT (dbo.INVENTDIM.WMSLOCATIONID LIKE 'htc')) AND (dbo.INVENTDIM.WMSLOCATIONID <> '') AND
(NOT (dbo.INVENTDIM.INVENTLOCATIONID LIKE 'mw'))
ORDER BY dbo.INVENTTABLE.ITEMID[/sql]