I am writing a query in MS Access SQL doing some math.
SELECT
DISTINCT QParts.PartsNumber,
SWITCH(([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT]) IS NULL,
0,
([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT]) <= 0,
0, ([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT]) >= 0,
([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT])) AS avqty,
SWITCH(dbo_ICILOC.QTYONORDER IS NULL,
0,
dbo_ICILOC.QTYONORDER >= 0,
(([AESTUSA.QTYONORDER] + [dbo_ICILOC].[QTYONORDER]) + SUM(IIf(([dbo_ICILOC].[QTYONHAND] - [dbo_ICILOC].[QTYCOMMIT]) > 0,
0,
([dbo_ICILOC].[QTYONHAND] - [dbo_ICILOC].[QTYCOMMIT])))) AS qtyorder
FROM
QParts
LEFT JOIN
dbo_ICILOC ON
QParts.PartsNumber = dbo_ICILOC.ITEMNO
AND
dbo_ICILOC.LOCATION = "UBN"
LEFT JOIN
dbo_ICILOC AS AESTUSA ON
QParts.PartsNumber = AESTUSA.ITEMNO
AND
AESTUSA.LOCATION = "UBCUST";
but this query gives me a lot of errors. What am I missing?
I think your joins are wrong. Move the criteria to a Where clause:
SELECT DISTINCT QParts.PartsNumber
,switch(([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT]) IS NULL, 0, ([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT]) <= 0, 0, ([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT]) >= 0, ([dbo_ICILOC].[QTYONHAND] + [dbo_ICILOC].[QTYRENOCST] + [dbo_ICILOC].[QTYADNOCST] - [dbo_ICILOC].[QTYSHNOCST] - [dbo_ICILOC].[QTYCOMMIT])) AS avqty
,switch(dbo_ICILOC.QTYONORDER IS NULL, 0, dbo_ICILOC.QTYONORDER >= 0, (([AESTUSA.QTYONORDER] + [dbo_ICILOC].[QTYONORDER]) + SUM(IIf(([dbo_ICILOC].[QTYONHAND] - [dbo_ICILOC].[QTYCOMMIT]) > 0, 0, ([dbo_ICILOC].[QTYONHAND] - [dbo_ICILOC].[QTYCOMMIT])))) AS qtyorder
FROM QParts
LEFT JOIN dbo_ICILOC ON QParts.PartsNumber = dbo_ICILOC.ITEMNO
LEFT JOIN dbo_ICILOC AS AESTUSA ON QParts.PartsNumber = AESTUSA.ITEMNO
WHERE
dbo_ICILOC.LOCATION = "UBN"
AND
AESTUSA.LOCATION = "UBCUST";
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.