Sql 使用IIF功能,根据多个字段的组合显示一个参数/字段
我需要MS Access的帮助。下面是要使用的3个表 逻辑: 我需要一个查询,该查询应获取总账、分行和住所(在同一表格中)的基础组合中的增值税。例如:Sql 使用IIF功能,根据多个字段的组合显示一个参数/字段,sql,ms-access,Sql,Ms Access,我需要MS Access的帮助。下面是要使用的3个表 逻辑: 我需要一个查询,该查询应获取总账、分行和住所(在同一表格中)的基础组合中的增值税。例如: VAT_Inclusion Branch|Local_GL_Start|Local_GL_end|Domicile|VATRATE ------+--------------+------------+--------+------- 21 |40000 |50000 |UK |9 住所详细信息:根
VAT_Inclusion
Branch|Local_GL_Start|Local_GL_end|Domicile|VATRATE
------+--------------+------------+--------+-------
21 |40000 |50000 |UK |9
住所详细信息:根据GRT
表中的本地客户id和住所
表中的本地客户id获取<代码>GRT不包含住所,但住所
包含住所
我准备了一个问题(见下文末尾),但面临一些问题,以供参考
以GRT
表格格式输出:
Branch|Local_GL| Local_CUST_ID|VAT RATE
------+--------+--------------+--------
21 | 40010 | CUST_223 |9
输出应具有来自GRT
的数据,其中包含分支as 21和VAT_Inclusion
中给出的范围内的本地总账(此处为40010)
分行|本地|总账|本地|客户ID
分行|本地|总账|起点|本地|总账|终点|住所|增值税
Local_CUST_ID|住所
请求您帮助解决此问题。它没有显示所需的增值税税率。它只显示7作为所有人的增值税税率。您的SQL有几个拼写错误(AT而不是VAT),需要删除和之前的“”。请尝试以下操作:
SELECT GRT.*, IIf([GRT].[Branch]=[VAT_Inclusion].[Branch] And ([GRT].[local_GL] Between [VAT_Inclusion].[Local_GL_Start] And [VAT_Inclusion].[Local_GL_Start]) And ([VAT_Inclusion].[Domicile]=[Domicile_out].[Domicile]),[VAT_Inclusion].[VATRATE],"7") AS Expr1
FROM VAT_Inclusion, GRT, (select GRT.Local_CUST_ID, DOMICILE.Local_CUST_ID, DOMICILE.DOMICILE
from GRT, DOMICILE
where GRT.Local_CUST_ID=DOMICILE.Local_CUST_ID) AS Domicile_out
WHERE (((GRT.Branch)=[VAT_Inclusion].[Branch]) AND ((GRT.local_GL) Between [VAT_Inclusion].[Local_GL_Start] And [VAT_Inclusion].[Local_GL_Start]) AND ((VAT_Inclusion.Domicile)=[Domicile_out].[Domicile]));
SELECT GRT.*, IIf([GRT].[Branch]=[VAT_Inclusion].[Branch] And ([GRT].[local_GL] Between [VAT_Inclusion].[Local_GL_Start] And [VAT_Inclusion].[Local_GL_Start]) And ([VAT_Inclusion].[Domicile]=[Domicile_out].[Domicile]),[VAT_Inclusion].[VATRATE],"7") AS Expr1
FROM VAT_Inclusion, GRT, (select GRT.Local_CUST_ID, DOMICILE.Local_CUST_ID, DOMICILE.DOMICILE
from GRT, DOMICILE
where GRT.Local_CUST_ID=DOMICILE.Local_CUST_ID) AS Domicile_out
WHERE (((GRT.Branch)=[VAT_Inclusion].[Branch]) AND ((GRT.local_GL) Between [VAT_Inclusion].[Local_GL_Start] And [VAT_Inclusion].[Local_GL_Start]) AND ((VAT_Inclusion.Domicile)=[Domicile_out].[Domicile]));