我在MS Access中有点新手,但我已经开始在工作中进行一些数据验证,并认为现在是时候采用更简化的方式了。
第一次发帖时,我遇到了一个问题,只是"只有"在同一个表中显示不匹配的值,即错误
我有一个表(查询),其中我有一个数据库和另一个数据库中的员工详细信息。两者都有相同的信息,但两者都有一些不正确且需要更新的细节。作为一个例子,见下文:
Table1
Employee ID Surname EmpID Surname1
123456789 Smith 123456789 Smith
654987321 Daniels 654987321 Volate
987654321 Hanks 987654321 Hanks
741852963 Donald 741852963 Draps
现在我要识别的是与#34; Surname"和" Surname1"
这应该是员工ID
741852963 Donald 741852963 Draps
654987321 Daniels 654987321 Volate
我要将此附加到错误表中,我可以列出值不匹配的所有错误。
我尝试的是以下内容:
Field: Matches: IIf([Table1].[Surname]<>[Table1].[Surname1],"Yes","No")
这似乎不起作用,因为所有结果都显示为是,我知道存在不一致的事实。
有谁知道该怎么做或怎么做?如果需要,可以提出任何问题。
谢谢
更新
好的,我认为如果我给你所有列的实际名称可能会更好。我认为简化它会更容易,但也许不是。
Assignment PayC HRIS Assignment No WAPayCycle
12345678 No Payroll 12345678 Pay Cycle 1
20001868 SCP Pay Cycle 1 20001868 SCP Pay Cycle 1
20003272-2 SCP Pay Cycle 1 #Error
20014627 SCP Pay Cycle 1 20014627 SCP Pay Cycle 1
因此,这给出了我正在做的事情以及我需要反击的可能错误。第一个有不匹配所以我希望错误。第3行在一列中有一个Null值,在另一列中有一个Null,但是其中一行是#Error,而另一行只是空白。其余的都匹配。
链接以屏幕丢失 https://drive.google.com/open?id=0B-5TRrOketfyb0tCbElYSWNSM1k
答案 0 :(得分:1)
此选项在[HRIS Assignment No]
:
SELECT * , IIf([Assignment]<>IIf(IsError([HRIS Assignment No]),"",Nz([HRIS Assignment No]),""),"Yes","No") As Err
FROM [pc look up]
WHERE [Assignment]<>IIf(IsError([HRIS Assignment No]),"",Nz([HRIS Assignment No]),"")
答案 1 :(得分:0)
这应该有效:
SELECT *
FROM Table
WHERE EmployeeID = EmpID
AND Surname <> Surname1
OR Len(Nz(Surname,'')) = 0
OR Len(Nz(Surname1,'')) = 0
亲切的问候,
雷
答案 2 :(得分:0)
在您的问题中,您声明“一个数据库,另一个数据库” 假设你从两个表开始(你已经向我们展示了将这四个字段连接在一起的查询?)那么这个查询就可以了:
$options = array_combine(range(1, $stock), range(1, $stock));
$this->Form->select('quantity', $options, ['empty' => 'Quantity'])
INNER JOIN将为您提供您所追求的结果。 LEFT JOIN将显示Table1中的所有值(别名为T1),只显示Table2中匹配的值(别名为T2) - 其他值将为NULL,右边的JOIN将显示相反的方式。