我想查找两列不匹配的记录。为了做到这一点,我需要将其中一列除以100(因为它是%)。
我的表:
|artno|artno2|Quantity_Percent|Quantity_pcs|
|1111 |aaaa | 28 | 0,28 |
|1111 |bbbb | 0,65 | 0,017 |
查询:
Select artno, artno2, (Quantity_Percent / 100) as Percent, Quantity_pcs
From Table1
Where artno = '1111'
将其转为:
|artno|artno2| Percent |Quantity_pcs|
|1111 |aaaa | 0,28 | 0,28 |
|1111 |bbbb | 0,0065 | 0,017 |
到目前为止一切顺利;但如果我希望查询只返回Quantity_Percent和Quantity_pcs列不匹配的第二行,我该怎么做?
提前致谢。
SisU
答案 0 :(得分:1)
您需要添加到WHERE
子句的条件是
AND Quantity_Percent <> Quantity_pcs * 100
此条件用乘法替换除法。此外,您可以根据阈值排除行:
AND ABS(Quantity_Percent - Quantity_pcs * 100) > 1E-6
答案 1 :(得分:0)
只需使用and
例如使用您的查询:
Select artno, artno2, (Quantity_Procent / 100) as Procent, Quantity_pcs
From Table1
Where artno = '1111' and Quantity_Procent != (Quntity_pcs*100);
如果您想要所有atno
,请将此Quantity_Procent != (Quntity_pcs*100)
置于where
条件下。
答案 2 :(得分:0)
你可以使用Quality_Percent和Quality_pcs的条件不匹配......
只需添加以下条件
SELECT * FROM ([YOUR_QUERY]) WHERE Percent!=Quality_pcs
以便您的查询如下所示
SELECT * FROM (SELECT artno, artno2, (Quantity_Percent / 100) as Percent, Quantity_pcs
FROM Table1
WHERE artno = '1111')
WHERE Percent != Quality_pcs
希望这会对你有所帮助