繁体   English   中英

为什么我从 MAX SQL 查询中得到多个结果?

[英]Why do I get multiple results from a MAX SQL query?

在 Access 中,我有一个名为 tblBundle 的表,我试图查询按顺序在每个捆绑包上完成的最后一步。

tblBundle 包含:工单、Bundle #、BundleLtr、Step、Complete [boolean]

我最终想将其复制到 vba 中,以创建 Bundle #、Ltr 和最后一步完成的列表,以便在下一步完成时继续输入数据。

出于某种原因,我无法确定,下面的 SQL 查询返回捆绑 1(190、200)的 2 条记录,而我认为它应该只返回一条记录 - 200。

SELECT Max(tblBundle.Step) AS intLstep, tblBundle.BundleNbr, tblBundle.BundleLtr, 
tblBundle.Complete
FROM tblBundle
GROUP BY tblBundle.WO, tblBundle.BundleNbr, tblBundle.BundleLtr, tblBundle.Complete
HAVING (((tblBundle.WO)="195687-1-1") AND ((tblBundle.Complete)=True));

查询输出

谁能帮我弄清楚为什么我的查询返回了额外的值?

似乎是因为您的查询正在分解结果并且返回 BundleNbr 导致它同时占用 Max,因为它是有效的。

您还可以在您的 Group By 语句中对此进行分解并按此汇总。

190 和 200 的值都具有 1 的 BundleNbr。如果删除该列,您将获得 200 的实际最大值(如果您想要 intLStep 的最大值。

我能够在 function 之后使用它来“清理”我的字符串并删除额外的“Bundle 1”。 这不能解决最初的问题,但适用于我的目的。

'[Removes duplicate values from a string]
Function DeDupeString(ByVal sInput As String, Optional ByVal sDelimiter As 
String = ",") As String

Dim varSection As Variant
Dim sTemp As String

For Each varSection In Split(sInput, sDelimiter)
    If InStr(1, sDelimiter & sTemp & sDelimiter, sDelimiter & varSection & sDelimiter, vbTextCompare) = 0 Then
        sTemp = sTemp & sDelimiter & varSection
    End If
Next varSection

DeDupeString = Mid(sTemp, Len(sDelimiter) + 1)

End Function

发现自: 从 VBA 中的字符串中删除重复值

在 MsAccess 中,当在数据表视图中查看时,NULL 值显示为空白。 此外,似乎当在数据表视图上为 ShortText 列输入空白时,它们会变成 NULL(在我的 MsAccess 版本上)。 似乎您的数据可能有 NULL 用于其中一个步骤(例如 200),而空格(零或更多)用于另一个(例如步骤 190),您可以强制查询以相同的方式处理两者:

SELECT Max(tblBundle.Step) AS intLstep, tblBundle.BundleNbr,
 nz(tblBundle.BundleLtr,'') as BundleLtr,
 tblBundle.Complete
FROM tblBundle
GROUP BY tblBundle.WO, tblBundle.BundleNbr,
         nz(tblBundle.BundleLtr,''), tblBundle.Complete
HAVING (((tblBundle.WO)="195687-1-1") AND ((tblBundle.Complete)=True));

请注意,不可见字符实际上可以是看起来像空格的字符,但实际上不是(如不间断空格)等。如果上述解决方案不起作用,请尝试以下操作:

SELECT  asc(mid(BundleLtr, 1,1)), asc(mid(BundleLtr, 2,1)) FROM Table2 where Step=190

查看该列中数据的 ascii 值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM