我遇到以下sql语句的语法错误 事情是我想在一个表中的3个不同列中重复计数。 我正在使用Visual Studio 2010和用于OLE DB的.NET Framework数据提供程序
此查询将返回一个记录集中的所有条目
string testqry =
SELECT NO_IDENT_1 As NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_3 As NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25});
但以下将发出语法错误信号
string RqNbIdent10 =
"SELECT COUNT(*) as repeat
from (
SELECT NO_IDENT_1 As NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_3 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
) GROUP BY NO_IDENT_2"
答案 0 :(得分:0)
尝试将SELECT NO_IDENT_3 FROM P240538
更改为:
SELECT NO_IDENT_3 AS NO_IDENT_2 FROM P240538
答案 1 :(得分:0)
试试这个:
SELECT xx.No_Ident_2,COUNT(*) as repeat
from (
SELECT NO_IDENT_1 As NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_3 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
) xx
GROUP BY xx.NO_IDENT_2
答案 2 :(得分:0)
您需要识别子选择结果集,此处我已将其识别为结果。
SELECT results.NO_IDENT_2, COUNT(results.NO_IDENT_2) as repeat
from (
SELECT NO_IDENT_1 As NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_2 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
Union All
SELECT NO_IDENT_3 FROM P240538 WHERE (P240538.DATE_dt > {2011/04/25})
) results GROUP BY results.NO_IDENT_2
答案 3 :(得分:0)
从“UNION ALL”中删除ALL。
更新:抱歉,我误读了。您实际上想要选择重复项。或者存在重复的记录。