Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
kalkulator pól kilka warunków
17-12-2014, 13:28,
#1
kalkulator pól kilka warunków
Witam , mam problem z poprawnym i działającym zapisaniem warunku złożonego
Próbowałam tak:
( "ludn_liczb" <30000 )* 2
(30000< "ludn_liczb" <60000 )* 3
(60000< "ludn_liczb" <90000 )* 4
(90000< "ludn_liczb" <120000 )* 5

i tak:
( "ludn_liczb" <30000 )* 2
( "ludn_liczb" >30000 AND "ludn_liczb" <60000)* 3
itd.
i tak:
CASE WHEN "ludn_liczb" <30000 THEN 2 END
itd.
łącząc wyrażeniem AND , + , nie dając żadnego łącznika. Działa tylko po wpisaniu pierwszego warunku, jak dodam kolejny warunek to nie działa.

Będę wdzięczna za pomoc.
17-12-2014, 17:59,
#2
RE: kalkulator pól kilka warunków
Też nie udało mi się znaleźć sposobu na połączenie iluś warunków w jeden ciąg wykonywalny, możesz ewentualnie aktualizować to samo pole kilka razy przy użyciu kalkulatora pól dla poszczególnych warunków, wpisywania w sumie tyle samo co jedna długa formuła Wink I tak dla pierwszego przypadku będzie:
CASE WHEN "ludn_liczb" < 30000 THEN "ludn_liczb"*2 END
I potem analogicznie:
CASE WHEN "ludn_liczb" > 30000 AND "ludn_liczb" <60000 THEN "ludn_liczb"*3 END
itd.
17-12-2014, 19:08, (Ten post był ostatnio modyfikowany: 17-12-2014, 19:17 {2} przez martel.)
#3
RE: kalkulator pól kilka warunków
Ok, errata, jednak da się to zrobić jednym wyrażeniem i powinno być ok jak wpiszesz tak:
case when "ludn_liczb" <30000 then "ludn_liczb"*2 when "ludn_liczb" <60000 then "ludn_liczb"*3 when "ludn_liczb" <90000 then "ludn_liczb"*4 (itd. w zależności od liczby przedziałów) end
18-12-2014, 09:42,
#4
RE: kalkulator pól kilka warunków
Dziękuję za pomoc, faktycznie spełnia kilka warunków ale coś jest nie tak ponieważ
jako wynik pojawiają się liczby 12, 9 i 4 zamiast 2,3 i 4.

Zachodzi sprzeczność ponieważ liczba np. 10000 spełnia wszystkie warunki tzn. jest zarówno ,30000 jak i <60000 jak i ,90000. Trzeba jakoś zastosować przedziały :
"ludn_liczb" <30000
30000 < "ludn_liczb" <60000
60000 < "ludn_liczb" <90000
18-12-2014, 11:00,
#5
RE: kalkulator pól kilka warunków
Witam,

W tym wypadku zadziała wielokrotna kombinacja Wink warto by było pomyśleć o odpowiednim domykaniu przedziałów (np. <= zamiast < itp.) bo przy wartości równej 30000 - wynik będzie zerowy

Kod:
case when "ludn_liczb" <30000 then "ludn_liczb"*2 else
(case when "ludn_liczb" <60000 and "ludn_liczb" > 30000 then "ludn_liczb"*3 else
(case when "ludn_liczb" <90000 and "ludn_liczb" > 60000 then "ludn_liczb"*4 else
(case when "ludn_liczb" > 90000 and "ludn_liczb" < 120000 then "ludn_liczb"*5 end)end)end)end

Pozdrawiam
18-12-2014, 12:08, (Ten post był ostatnio modyfikowany: 18-12-2014, 12:14 {2} przez martel.)
#6
RE: kalkulator pól kilka warunków
"Dziękuję za pomoc, faktycznie spełnia kilka warunków ale coś jest nie tak ponieważ
jako wynik pojawiają się liczby 12, 9 i 4 zamiast 2,3 i 4"
Zachodzi sprzeczność ponieważ liczba np. 10000 spełnia wszystkie warunki tzn. jest zarówno ,30000 jak i <60000 jak i ,90000. Trzeba jakoś zastosować przedziały"

Nie zachodzi sprzeczność, bo warunki się nawzajem wykluczają i powiedzmy przykładowe 10000 spełniając pierwszy warunek nie będzie już brane pod uwagę w drugim jak i każdym kolejnym warunku.

"W tym wypadku zadziała wielokrotna kombinacja Wink warto by było pomyśleć o odpowiednim domykaniu przedziałów (np. <= zamiast < itp.) bo przy wartości równej 30000 - wynik będzie zerowy"

Nie będzie zerowy, gdyż wtedy 30000 łapie się do drugiego przedziału, zamiana < na <= spowoduje tylko, iż wtedy 30000 będzie jeszcze w pierwszym przedziale zamiast w drugim. Jedyne co nie może być, to dwa domknięcia ze znakiem równości, czyli np. <=30000 i w następnym >=30000.
18-12-2014, 14:30,
#7
RE: kalkulator pól kilka warunków
Niestety - dwa domknięcia spowodują error.

W tej sytuacji nie może coś przynależeć jednocześnie do dwóch przedziałów- musi przynależeć albo do pierwszego albo do drugiego:

1 - ludn<= 30000 , 2 - 60000>= ludn > 30000 (oczywiście czy to ma być do 1 czy do 2 przedziału łatwo zamienić)

Dlatego też jedynie jednostronne znaki wieksze/mniejsze bądź równe wchodzą w grę.
18-12-2014, 15:14,
#8
RE: kalkulator pól kilka warunków
No oczywiście, że jak jedna wartość będzie należeć do dwóch zbiorów bądź do żadnego, to będzie błąd, to chyba logiczne, jednak w formule, którą podałem:
ludn <30000, <60000, <90000
błędu nie ma, można ten znak zamienić na <= celem przesunięcia granic przedziału o 1, ewentualnie ostatnią wartość trzeba by zmienić jakby chcieć: <90000 i ostatni >=90000
19-12-2014, 00:11,
#9
RE: kalkulator pól kilka warunków
Cześć,

nie potrafię zgadnąć, jaki powinien być wynik tej operacji, ale np. zakładając, że to mają być liczby 2..5, to można spróbować tak:
Kod:
case
when "ludn_liczb" < 30000 then 2
when "ludn_liczb" < 60000 then 3
when "ludn_liczb" < 90000 then 4
else 5
end
19-12-2014, 00:40,
#10
RE: kalkulator pól kilka warunków
Wynikiem ma być iloczyn wartości pola (w tym przypadku liczba ludności) i podanego współczynnika przy spełnieniu określonego warunku (gdy liczba ludności zawiera się w danym przedziale), dlatego po "then" trzeba powtórzyć "ludn_liczb" * (i tu wpisać współczynnik). Składnia podana wcześniej:
case when "ludn_liczb" <30000 then "ludn_liczb"*2 when "ludn_liczb" <60000 then "ludn_liczb"*3 when "ludn_liczb" <90000 then "ludn_liczb"*4 (itd. w zależności od liczby przedziałów) end
działa dobrze.


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zniknęło kilka etykiet Karolek 0 2 021 18-05-2020, 15:26
Ostatni post: Karolek
  Kalkulator pól podział, jak excel monikaaab 5 13 320 28-08-2018, 08:10
Ostatni post: Binko
  Kalkulator pól - przypisywanie wartości danym elementom Niebieska 4 20 374 12-03-2017, 20:35
Ostatni post: Niebieska
  Qgis kalkulator pól michuup 1 9 180 10-01-2017, 22:51
Ostatni post: Binko
  Stworzenie poligonów na podstawie warunkow anikropelki 4 16 149 23-11-2016, 14:06
Ostatni post: Italiano
  Problem z aktualizacją przez kalkulator pól sebaq 1 10 493 03-01-2015, 00:23
Ostatni post: sebaq
  Kilka okien mapy martel 3 18 259 15-10-2013, 22:39
Ostatni post: borys
  Kalkulator pól a uprawnienia. kamilwydra 4 19 726 30-09-2013, 09:55
Ostatni post: kamilwydra
  [błąd] kalkulator pól: błąd przy polach tekstowych 1.8.0 [wiki] 7 36 807 09-03-2013, 21:21
Ostatni post: [wiki]
  połączyć wiele/kilka poligonów w jeden diunida 5 42 592 27-02-2013, 13:30
Ostatni post: borys

Skocz do: