TableAdapter 中的 IIF 查询语句出错
Error in IIF Statement of Query within TableAdapter
你好,抱歉英语不好
我在 .mdb 格式的访问数据库中有 3 个 tables -
我在 vs 2010 中使用这个数据库作为数据源。我有一个带有以下填充查询的 TableAdapter(连接是 MS Jet 4.0):
SELECT a.ID AS AmelID, a.NamAmel, a.MoshtariRef, a.ShHesab, a.Kod, a.NamF, a.NamSM, derivedtbl_1.MablaghKol, derivedtbl_1.Cnt, iif(derivedtbl_2.MablaghKolBrg is Null, 0,derivedtbl_2.MablaghKolBrg) As MablaghKolBrg, iif(derivedtbl_2.CntKolBrg is Null, 0,derivedtbl_2.CntKolBrg) As CntBrg,
iif(derivedtbl_3.MablaghKolVsl is Null, 0,derivedtbl_3.MablaghKolVsl) As MablaghKolVsl,iif(derivedtbl_3.CntVsl is Null, 0,derivedtbl_3.CntVsl) As CntVsl
FROM ((((SELECT Amel.ID, Amel.NamAmel, Chek.MoshtariRef, Chek.ShHesab, Moshtari.Kod, Moshtari.NamF, Moshtari.NamSM
FROM ((Amel INNER JOIN
Chek ON Amel.ID = Chek.ID) INNER JOIN
Moshtari ON Amel.ID = Moshtari.AmelRef)
GROUP BY Amel.ID, Amel.NamAmel, Chek.MoshtariRef, Chek.ShHesab, Moshtari.Kod, Moshtari.NamF, Moshtari.NamSM) a LEFT OUTER JOIN
(SELECT SUM(Mablagh) AS MablaghKolVsl, COUNT(Mablagh) AS CntVsl, MoshtariRef, ShHesab
FROM Chek Chek_3
WHERE (Status = '1')
GROUP BY MoshtariRef, ShHesab) derivedtbl_3 ON a.MoshtariRef = derivedtbl_3.MoshtariRef AND a.ShHesab = derivedtbl_3.ShHesab) LEFT OUTER JOIN
(SELECT SUM(Mablagh) AS MablaghKol, COUNT(Mablagh) AS Cnt, MoshtariRef, ShHesab
FROM Chek Chek_1
GROUP BY MoshtariRef, ShHesab) derivedtbl_1 ON a.MoshtariRef = derivedtbl_1.MoshtariRef AND a.ShHesab = derivedtbl_1.ShHesab) LEFT OUTER JOIN
(SELECT SUM(Mablagh) AS MablaghKolBrg, COUNT(Mablagh) AS CntKolBrg, MoshtariRef, ShHesab
FROM Chek Chek_2
WHERE (Status = '2')
GROUP BY MoshtariRef, ShHesab) derivedtbl_2 ON a.ShHesab = derivedtbl_2.ShHesab AND a.MoshtariRef = derivedtbl_2.MoshtariRef)
为了避免获得 Null 值,我在最后 4 列中创建了一个 IIF 语句,该语句在访问时工作正常,但在 vs table 适配器中出现以下错误:
Error in list of function arguments: 'IS' not recognized.
Unable to parse query text.
同时我看到结果为 0 而不是空值,这意味着 IIF 语句工作正常。
但我需要 table 适配器来填充 tables 但由于错误而没有发生。
我该怎么办?
提前致谢
找到了:D
只需在 table 中手动创建列。无论您是在数据网格还是报告中使用它,它都会起作用。只需确保查询中的列名与 table.
中的列名匹配
你好,抱歉英语不好
我在 .mdb 格式的访问数据库中有 3 个 tables - 我在 vs 2010 中使用这个数据库作为数据源。我有一个带有以下填充查询的 TableAdapter(连接是 MS Jet 4.0):
SELECT a.ID AS AmelID, a.NamAmel, a.MoshtariRef, a.ShHesab, a.Kod, a.NamF, a.NamSM, derivedtbl_1.MablaghKol, derivedtbl_1.Cnt, iif(derivedtbl_2.MablaghKolBrg is Null, 0,derivedtbl_2.MablaghKolBrg) As MablaghKolBrg, iif(derivedtbl_2.CntKolBrg is Null, 0,derivedtbl_2.CntKolBrg) As CntBrg,
iif(derivedtbl_3.MablaghKolVsl is Null, 0,derivedtbl_3.MablaghKolVsl) As MablaghKolVsl,iif(derivedtbl_3.CntVsl is Null, 0,derivedtbl_3.CntVsl) As CntVsl
FROM ((((SELECT Amel.ID, Amel.NamAmel, Chek.MoshtariRef, Chek.ShHesab, Moshtari.Kod, Moshtari.NamF, Moshtari.NamSM
FROM ((Amel INNER JOIN
Chek ON Amel.ID = Chek.ID) INNER JOIN
Moshtari ON Amel.ID = Moshtari.AmelRef)
GROUP BY Amel.ID, Amel.NamAmel, Chek.MoshtariRef, Chek.ShHesab, Moshtari.Kod, Moshtari.NamF, Moshtari.NamSM) a LEFT OUTER JOIN
(SELECT SUM(Mablagh) AS MablaghKolVsl, COUNT(Mablagh) AS CntVsl, MoshtariRef, ShHesab
FROM Chek Chek_3
WHERE (Status = '1')
GROUP BY MoshtariRef, ShHesab) derivedtbl_3 ON a.MoshtariRef = derivedtbl_3.MoshtariRef AND a.ShHesab = derivedtbl_3.ShHesab) LEFT OUTER JOIN
(SELECT SUM(Mablagh) AS MablaghKol, COUNT(Mablagh) AS Cnt, MoshtariRef, ShHesab
FROM Chek Chek_1
GROUP BY MoshtariRef, ShHesab) derivedtbl_1 ON a.MoshtariRef = derivedtbl_1.MoshtariRef AND a.ShHesab = derivedtbl_1.ShHesab) LEFT OUTER JOIN
(SELECT SUM(Mablagh) AS MablaghKolBrg, COUNT(Mablagh) AS CntKolBrg, MoshtariRef, ShHesab
FROM Chek Chek_2
WHERE (Status = '2')
GROUP BY MoshtariRef, ShHesab) derivedtbl_2 ON a.ShHesab = derivedtbl_2.ShHesab AND a.MoshtariRef = derivedtbl_2.MoshtariRef)
为了避免获得 Null 值,我在最后 4 列中创建了一个 IIF 语句,该语句在访问时工作正常,但在 vs table 适配器中出现以下错误:
Error in list of function arguments: 'IS' not recognized.
Unable to parse query text.
同时我看到结果为 0 而不是空值,这意味着 IIF 语句工作正常。
但我需要 table 适配器来填充 tables 但由于错误而没有发生。 我该怎么办?
提前致谢
找到了:D
只需在 table 中手动创建列。无论您是在数据网格还是报告中使用它,它都会起作用。只需确保查询中的列名与 table.
中的列名匹配