我可以在SQL Server
中执行此操作:
SELECT 'HERRAMIENTA ELÉCTRICA' AS TIPO_PRODUCTO,
0 AS DEPRECIACION,
(select sum(empid) from HR.employees) STOCK
但在Access
中,相同的查询显示下一个错误:
查询输入必须至少包含一个表或查询
那么哪个可能是效仿这个的最佳形式?与任何其他表格查询看起来很脏。
编辑1:,HR.employees它可能没有数据,但我想要显示常量('HERRAMIENTAELÉCTRICA',''0')和第三列中的0,可能使用isnull和这不是问题所在。
答案 0 :(得分:2)
为什么不直接选择:
select 'HERRAMIENTA ELÉCTRICA' AS TIPO_PRODUCTO,
0 AS DEPRECIACION,
IIF(ISNULL(sum(empid)), 0, sum(empid)) AS STOCK
from HR.employees
答案 1 :(得分:0)
将此示例用作空表:
with employ as
(select 2 as col from dual
minus
select 2 as col from dual)
查询是这样的:
select 'HERRAM' as tipo,
0 as deprec,
coalesce(sum(col), 0) as STOCK
from employ;
当p为空时, coalesce(x, value)
将列设置为值
答案 2 :(得分:0)
这在Access中无效。你需要一个FROM子句。
所以你需要有一个带有一条记录的虚拟表,即使你没有使用该表中的单个字段。
SELECT 'HERRAMIENTA ELÉCTRICA' AS TIPO_PRODUCTO,
0 AS DEPRECIACION,
(select sum(empid) from HR.employees) STOCK
FROM Dummy_Table
答案 3 :(得分:0)
在Access中,您可以使用系统表,并使用Val
和Nz
作为零值:
SELECT TOP 1
'HERRAMIENTA ELÉCTRICA' AS TIPO_PRODUCTO,
0 AS DEPRECIACION,
Val(Nz((select sum(empid) from HR.employees), 0)) AS STOCK
FROM
MSysObjects