SQL 不同在 Excel VBA 中不起作用

标签 sql excel adodb vba

下面的代码是大型项目的一部分。

下面的代码对特定列中的记录进行计数。

   Sub qareportds()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sname As String
    Dim i As Integer
    Dim lrow As Integer

    sname = ActiveSheet.Name
    Set con = New ADODB.Connection
    Set rs = New ADODB.Recordset
    value1 = weeknum

    con.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & ActiveWorkbook.FullName

    If con.State = adStateClosed Then con.Open

    Dim query1 As String

    query1 = "SELECT COUNT(RETAIL_SKU) FROM [RETOUCH$]"

    rs.Open query1, con, adOpenKeyset, adLockOptimistic

    Sheets("SHEET3").Range("a1").CopyFromRecordset rs

    rs.Close

    Set rs = Nothing
    Set con = Nothing
    End Sub

现在我需要计算列中的不同值。我使用了以下查询

query1 = "SELECT COUNT(distinct RETAIL_SKU) FROM [RETOUCH$]"

但它抛出以下错误..

odbc driver does not support the requested properties

更新部分:

是否可以插入此查询-

SELECT COUNT(A.RETAIL_SKU) AS TotalCount FROM (SELECT DISTINCT RETAIL_SKU FROM [RETOUCH$]) AS A)

进入此

SELECT  REGION + '-' + STUDIO_SHORT_NAME,
    AVG(WorkedHours),
    AVG(OVERALL_CYCLE_TIME_HRS),
    'Studio Retouch - By Studio Locations - Non IA' as value1,
    13 as date1 
FROM    [RETOUCH$] 
WHERE   RETOUCH_LEVEL IN (1,2,3,4,5,6) 
    AND MERCHANT='Amazon' 
    AND SOURCE_TYPE='Studio' 
GROUP   BY REGION + '-' + STUDIO_SHORT_NAME

最佳答案

这是因为尚不支持 COUNT(DISTINCT ...)。尝试一下,

SELECT COUNT(A.RETAIL_SKU) AS TotalCount
FROM
(
    SELECT DISTINCT RETAIL_SKU 
    FROM [RETOUCH$]
) AS A

关于SQL 不同在 Excel VBA 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22855011/

相关文章:

vba - 仅复制可见工作表中的单元格并粘贴到下一个免费列 VBA

excel - 如何在 ADODB SELECT 期间捕获 Escape 键(Excel VBA)

sql - 选择具有多个“where”字段的语句,使用相同的值而不重复文本

python - 创建一个基于值 excel 填充的饼图?

vba - Excel - 返回所选选项按钮的标题

MySQL 记录集在应返回值时未返回值

vb6 - "Invalid use of Null"将 Str() 与 Null Recordset 字段一起使用时,但 Str(Null) 工作正常

sql - PHPMyadmin 中的行递减/递增

c++ - 为什么这个插入给出语法错误

sql - 存储过程(删除发票)