【发布时间】:2014-06-18 11:47:20
【问题描述】:
我正在尝试计算差异
Sub sql(sqlStr As String, PasteRnG As Range)
Dim con As Object
Dim rstData As Object
Dim sDatabaseRangeAddress As String
Set con = CreateObject("ADODB.Connection")
Set rstData = CreateObject("ADODB.Recordset")
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.FullName & ";Extended Properties = ""Excel 12.0 Macro;HDR=yes"";"
rstData.Open sqlStr, con
PasteRnG.CopyFromRecordset rstData
rstData.Close
Set rstData = Nothing
Set con = Nothing
End Sub
查询
sql "SELECT DISTINCT `P3`,`P2`,`P1`, COUNT(DISTINCT `P3`) AS countOf FROM [QQ$] ", Worksheets("QQQQ").Range("a3")
错误
SELECT DISTINCT `P3`,`P2`,`P1`, COUNT(DISTINCT `P3`) AS countOf FROM table;
但我在COUNT(DISTINCTP3) 上遇到错误
我需要输入每个 DISTINCT P3 的第 4 列计数
Distinctlist P2 P1 CountOfDistinctInP3
111 , 11, 1, 56pcs.
222, 22, 2, 25pcs.
P3 不能为空!!!永远有价值
但这很好用,就像我需要的那样
sql "SELECT DISTINCT `P3`, COUNT(`P3`) FROM [QQ$] GROUP BY `P3` ", Worksheets("QQQQ").Range("a3")
但没有 P2 和 P1 (((
【问题讨论】:
-
从
count()中删除distinct -
我建议使用
group by而不是 distinct ,但我不确定您的原始数据是什么以及预期的输出是什么。一个例子可能会有所帮助。 -
错误您尝试执行的查询不包含指定表达式
P3作为聚合函数的一部分 -
你的第四列叫什么?您想要计算它的所有值还是所有不同的值?