微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Access DB 中不支持 SQL Server 视图

如何解决Access DB 中不支持 SQL Server 视图

这是 sql Server 中的视图,为什么在 Access DB 中不起作用?

SELECT     
    o.IdOrden,o.FechaOrden,o.NumeroDeOrden,p.RazonSocial,SUM(CASE WHEN r.idtipo = 1 THEN isnull(r.importe,0) ELSE 0 END) AS [Ch Propio],SUM(CASE WHEN r.idtipo = 2 THEN isnull(r.importe,0) ELSE 0 END) AS [Ch Tercero],SUM(CASE WHEN r.idtipo = 3 THEN isnull(r.importe,0) ELSE 0 END) AS Efectivo,SUM(CASE WHEN r.idtipo = 4 THEN isnull(r.importe,0) ELSE 0 END) AS Retenciones,SUM(CASE WHEN r.idtipo = 5 THEN isnull(r.importe,0) ELSE 0 END) AS Transferencias,SUM(ISNULL(r.Importe,0)) AS Total,COUNT(r.Importe) AS [cuenta importe],COUNT(o.IdOrden) AS [cuenta orden],o.IdEmpresa,o.idBeneficiario,o.idUsrAlta,o.iAnulado
FROM 
    dbo.Ordenes AS o 
INNER JOIN
    dbo.Proveedores AS p ON o.idBeneficiario = p.IdProveedor 
INNER JOIN
    dbo.Remesas AS r ON o.IdOrden = r.IdOrden
GROUP BY 
    o.IdOrden,o.iAnulado

编辑:

好吧,我不知道 Access 的 sqlsql Server 如此不同。

我正在重新创建一个连接到 sql Server 的 VB 6.0 Windows 应用程序到 Access,而不是链接sql Server。 Al表导入好,表单容易开发,但是有2个视图需要重写。

编辑 2:

这仍然不起作用,但只说 JOIN 中的错误

select
  dbo_Ordenes.IdOrden,dbo_Ordenes.FechaOrden,dbo_Ordenes.NumeroDeOrden,dbo_Proveedores.RazonSocial,sum(iif(dbo_Remesas.idtipo = 1,iif(dbo_Remesas.importe is null,dbo_Remesas.importe),0)) as [Ch Propio],sum(iif(dbo_Remesas.idtipo = 2,0)) as [Ch Tercero],sum(iif(dbo_Remesas.idtipo = 3,0)) as Efectivo,sum(iif(dbo_Remesas.idtipo = 4,0)) as Retenciones,sum(iif(dbo_Remesas.idtipo = 5,0)) as Transferencias,sum(iif(dbo_Remesas.Importe is null,dbo_Remesas.Importe)) as Total,count(dbo_Remesas.Importe) as [cuenta importe],count(dbo_Ordenes.IdOrden) as [cuenta orden],dbo_Ordenes.IdEmpresa,dbo_Ordenes.idBeneficiario,dbo_Ordenes.idUsrAlta,dbo_Ordenes.iAnulado
from (
  dbdbo_Ordenes.Ordenes
    inner join dbo_Ordenes.Proveedores
      on dbo_Ordenes.idBeneficiario = dbo_Proveedores.IdProveedor
)
  inner join dbo_Ordenes.Remesas
    on dbo_Ordenes.IdOrden = dbo_Remesas.IdOrden
group by
  dbo_Ordenes.IdOrden,dbo_Ordenes.iAnulado

解决方法

终于成功了。有一个错字。

有人推荐这个网站进行 SQL 翻译:https://www.jooq.org/translate/

select
  dbo_Ordenes.IdOrden,dbo_Ordenes.FechaOrden,dbo_Ordenes.NumeroDeOrden,dbo_Proveedores.RazonSocial,sum(iif(dbo_Remesas.idtipo = 1,iif(dbo_Remesas.importe is null,dbo_Remesas.importe),0)) as [Ch Propio],sum(iif(dbo_Remesas.idtipo = 2,0)) as [Ch Tercero],sum(iif(dbo_Remesas.idtipo = 3,0)) as Efectivo,sum(iif(dbo_Remesas.idtipo = 4,0)) as Retenciones,sum(iif(dbo_Remesas.idtipo = 5,0)) as Transferencias,sum(iif(dbo_Remesas.Importe is null,dbo_Remesas.Importe)) as Total,count(dbo_Remesas.Importe) as [cuenta importe],count(dbo_Ordenes.IdOrden) as [cuenta orden],dbo_Ordenes.IdEmpresa,dbo_Ordenes.idBeneficiario,dbo_Ordenes.idUsrAlta,dbo_Ordenes.iAnulado
FROM (dbo_Ordenes INNER JOIN dbo_Proveedores ON dbo_Ordenes.idBeneficiario = dbo_Proveedores.IdProveedor) INNER JOIN dbo_Remesas ON dbo_Ordenes.IdOrden = dbo_Remesas.IdOrden
group by
  dbo_Ordenes.IdOrden,dbo_Ordenes.iAnulado

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。