W 1 tabeli porównuję wartości ujemne, ale nie daje wymaganych wyników. W poniższym stole musi flaga, każdy ma MOD_VALUE ponad 10% metryki_walui

Table Columns : Emp ID , Name , Mod_Name , Mod_Value , Metric_Value

Więc mój kod to:

Select Distinct Emp_ID , Name , Mod_Name , Mod_Value , Metric_Value
where  Mod_Value > (0.1*Metric_Value) from Mod_Table 

A 1 EMP oznacza, że poniżej

EmpId  name  Mod_Name  Mod_Value  Metric_Value
123    ABC   PQR       -110243    -6124550  

Gdzie jako 10% z6124550 wynosi -612455 może powiedzieć, co mówię, co robię źle?

0
user14866184 15 kwiecień 2021, 13:34

1 odpowiedź

Najlepsza odpowiedź

Jest to podstawowe arytmetyczne: -110,243 jest większa niż -612445, ponieważ jest "mniej" negatywna.

Wydaje się, że chcesz < zamiast > lub porównać wartości bezwzględne:

where abs(Mod_Value) > 0.1 * abs(Metric_Value)
0
Gordon Linoff 15 kwiecień 2021, 10:37