私はこのサイトに不慣れで、SQL Server 2008 でやり直している Access フォームのコードについて質問があり、SUM、IIF、および IsNumeric がすべて 1 行に含まれており、これをどのように書き直すかについて混乱しています。 SQLで。
Sum([Employee COUNT]*IIf(IsNull([2011]),0,CDbl([2011]))*IIf(IsNumeric([Length]),CDbl([Length]),0)) AS Cost
私はこのサイトに不慣れで、SQL Server 2008 でやり直している Access フォームのコードについて質問があり、SUM、IIF、および IsNumeric がすべて 1 行に含まれており、これをどのように書き直すかについて混乱しています。 SQLで。
Sum([Employee COUNT]*IIf(IsNull([2011]),0,CDbl([2011]))*IIf(IsNumeric([Length]),CDbl([Length]),0)) AS Cost
私はこれがあなたが必要とすることをすると信じています:
Sum([Employee COUNT]
* (case
when [2011] Is Null
then 0
else cast([2011] as float)
end)
* (case
when IsNumeric([Length])= 1
then cast([Length] as float)
else 0
end)) AS Cost
SUM([Employee Count]
* COALESCE(
[2011],
CASE WHEN
ISNUMERIC([2011]) = 1
THEN
CAST([2011] AS DECIMAL(18,4)
ELSE
0
END
)
* CASE WHEN
ISNUMERIC([Length]) = 1
THEN
-- choose your own precision here.
CAST ([Length] AS DECIMAL(18,4))
ELSE
0
END
) AS Cost