This is a two-part problem. The first one is easy: How to get the difference between two input voltages: Use a instrumentation amplifier. As you did not specify what the common mode (i.e. average voltage of the input voltages) does, I would recommend to go for the 3-amp instrumentation amplifier. There are fully integrated versions available from e.g. Analog and Texas Instruments. I strongly recommend to use one of these, if you are building discrete electronics. It is not easy to design an instrumentation amplifier correctly to work under all conditions, be fast enough and still have reasonable noise performance.
The second part of the problem is how to decide whether you are positive, zero or negative. If the decision would only be positive or negative, then a single comparator would do. But you require two comparisons/comparators. This will cause problems as zero volts is an infinitesimally small interval, which cannot be detected with any physical circuit. Thus you have to stretch the zero to become an interval large enough such that the comparators, with their offset voltage, drift and noise, etc, will go from "negative", "zero", to "positive" in distinct steps and never output "zero and negative" or even worse "positive and negative." Please keep in mind that you will need a tiny bit of hysteresis for the comparators to work properly, which will add to the width of "zero", otherwise you might get oscillations. There are some specialized two-comparator chips that are meant for range checking (eg. LT6700), but you will have to read the datasheet to make sure they work for your kind of application.
desired_outputandobserved_outputdigital values (having only discreet values possible) or analog values (they could be any value between two limits)? If the inputs are analog, why do you want to limit the output of your circuit ($a(V_a-V_b)$) to discreet values of -1, 0, and 1? – The Photon Jun 11 '19 at 18:51