我开始知道不能在 Ms-access 查询中使用 case 表达式。相反,必须使用 IIF() 函数。我有一个 MS SQL 查询,它需要转换为一个预先存在的旧旧版应用程序的 Ms-access 查询。我知道 IIF() 函数的一般语法;但是,我有两个表相互连接的复杂案例表达式。你们有人能帮我吗?
CASE
WHEN ISNULL(tblDetail.ProductDiscPct,0)<>0 THEN 'MFG'
WHEN EXISTS (
SELECT 1 FROM ORDER_Shipment os
JOIN [ORDER_Items] oi
ON os.OrderId = oi.orderid
AND oi.MaterialId = tblDetail.MaterialID
AND ISNULL(oi.ItemStatusId,0)=0
AND oi.OrderItemTypeId = 300
AND [tblDetail].[Quantity] = [oi].[Qty]
WHERE CAST(tblInvoice.ARInvID AS varchar) = os.InvNumber
)
THEN 'SPECIAL'
ELSE ''
END AS LnNote
这是我需要转换为 MS-access 查询的 MS SQL 查询,我尝试如下但没有给我任何结果,而是取消了访问报告中字段的控制源的下拉选项.
IIf(IsNull(qryDetail.ProductDiscountPct <> 0, "MFG", "" )) AS LnNote
这只是我一直在努力工作的案例陈述的第一行。qryDetail
只是我的主查询中的一个子查询。