返回2列不匹配的记录

时间:2017-11-16 14:30:08

标签: sql ssms

我想查找两列不匹配的记录。为了做到这一点,我需要将其中一列除以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

3 个答案:

答案 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

希望这会对你有所帮助