Porównywanie dwóch wartości w tabeli SQL

0

Cześć

Mam taką zagwozdkę. Mam tabelę, w której są takie pola jak :

  • ID int PK
  • Ilosc int (Wartość w tym polu ma odzwierciedlać aktualny stan produktu)
  • Minimum int ( Przy jakim minimalnym stanie powinniśmy domówić produkt aby zachowana była ciągłość)

Chciałbym wyświetlić dane w tej tabeli, które spełniają warunek ilosc<minimum i od razu wyliczyć różnice i podać ją w drugim polu.

Próbowałem coś takiego :

select ID, Ilosc, Minimum, Ilosc-Minimum as Roznica

from [Testowa].[dbo].[produkt]

Where Roznica< 0 

O ile pierwsza część działa to warunek where już wyrzuca błąd...

1

Tak sie nie da ze względu na kolejność ewaluacji zapytania przez silnik bazy danych. Optymalizator kosztowy NAJPIERW analizuje warunki a dopiero na sam koniec wykonuje selekcje. Jest tak ze względu na ograniczenie operacji I/O. Rozwiązania są dwa:

  1. Powtórzenie tego działania w warunku where :)
  2. Podzapytanie gdzie wyliczasz wartość.
0

Dziękuję za szybką podpowiedź. Wybrałem sposób 1 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1