kryteria w kwarendach

Użytkowanie programu bazodanowego
Ran
Posty: 16
Rejestracja: pn sty 18, 2016 7:40 pm

kryteria w kwarendach

Post autor: Ran »

Mam dwie kolumny z wartosciami chce je dodac ale żeby wyniki były pokazywane tylko wieksz od pewnej liczby na 20
Zrobiłem tak kolumna 1 + kolumna 2 i w kryteriach zaznaczyłem >20 i jest błąd jak na foto poniżej .Dlaczego ?
Proszę o podpowiedz.
Załączniki
foto2.jpg
OpenOffice 4.1.2 na windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: kryteria w kwarendach

Post autor: belstar »

W kryteriach wpisz

Kod: Zaznacz cały

>'20'
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Ran
Posty: 16
Rejestracja: pn sty 18, 2016 7:40 pm

Re: kryteria w kwarendach

Post autor: Ran »

Wpisując tą wartosc w polu kryterium dostaje komunikat "Podanego kryterium nie można porównać z danym polem".
zapis dla danego pola mam taki

Suma( "Zlecenia"."ilosc zaplanowana" ) / Ilość( "Magazyn"."ilosc zrobiona" ) - Suma( "Magazyn"."ilosc zrobiona" ) - w kryterium wpisałem >'20'

kod sql dla tego pola
SUM( "Zlecenia"."ilosc zaplanowana" ) / COUNT( "Magazyn"."ilosc zrobiona" ) - SUM( "Magazyn"."ilosc zrobiona" ) AS "Pozostało"
OpenOffice 4.1.2 na windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: kryteria w kwarendach

Post autor: belstar »

Jeżeli to nie kłopot to wstaw tą bazę, nie będę musiał zgadywać.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Ran
Posty: 16
Rejestracja: pn sty 18, 2016 7:40 pm

Re: kryteria w kwarendach

Post autor: Ran »

Przepraszam juz wysyłam
Załączniki
Nowa Baza Danych test.odb
(75.2 KiB) Pobrany 179 razy
OpenOffice 4.1.2 na windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: kryteria w kwarendach

Post autor: belstar »

Ciekawe czy ta konstrukcja spełni twoje oczekiwania.

Kod: Zaznacz cały

SELECT "Pozostało" FROM ( SELECT SUM( "Zlecenia"."ilosc zaplanowana" ) / COUNT( "Magazyn"."ilosc zrobiona" ) - SUM( "Magazyn"."ilosc zrobiona" ) "Pozostało" FROM "Magazyn", "Zlecenia" WHERE "Magazyn"."id zlecenia" = "Zlecenia"."id" ) WHERE "Pozostało" > 20
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Ran
Posty: 16
Rejestracja: pn sty 18, 2016 7:40 pm

Re: kryteria w kwarendach

Post autor: Ran »

kod pokazyje tylko kolumne "pozostało".a jak dopisać do tego kodu żeby pokazało pozostałe kolumny w mojej kwaredzie.Próbowałem dopisać po komedzie SELECT tak jak zawsze ale pokazuje bład. Dlaczego?
OpenOffice 4.1.2 na windows 7
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: kryteria w kwarendach

Post autor: Jan_J »

Z przecinkami
SELECT "Pozostało", "Było", "Jest", "Będzie", "Było" + "Będzie", "Było" || "Jest"
(+ dodaje liczby, || skleja teksty) albo z gwiazdką oznaczającą wszystkie kolumny w kolejności ich zadeklarowania.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Ran
Posty: 16
Rejestracja: pn sty 18, 2016 7:40 pm

Re: kryteria w kwarendach

Post autor: Ran »

Chodzi mi o ten kod .Pokazuje tylko jedną kolumnę "Pozostało":

SELECT "Pozostało" FROM ( SELECT SUM( "Zlecenia"."ilosc zaplanowana" ) / COUNT( "Magazyn"."ilosc zrobiona" ) - SUM( "Magazyn"."ilosc zrobiona" ) "Pozostało"
FROM "Magazyn", "Zlecenia" WHERE "Magazyn"."id zlecenia" = "Zlecenia"."id" GROUP BY "Magazyn"."id zlecenia" ) WHERE "Pozostało" > 20

Ale kiedy do kodu dopisuje następną kolumnę :

SELECT "Magazyn"."id zlecenia", "Pozostało" FROM ( SELECT SUM( "Zlecenia"."ilosc zaplanowana" ) / COUNT( "Magazyn"."ilosc zrobiona" ) - SUM( "Magazyn"."ilosc zrobiona" ) "Pozostało"
FROM "Magazyn", "Zlecenia" WHERE "Magazyn"."id zlecenia" = "Zlecenia"."id" GROUP BY "Magazyn"."id zlecenia" ) WHERE "Pozostało" > 20

To pokazuje błąd SQL Dlaczego?
OpenOffice 4.1.2 na windows 7
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: kryteria w kwarendach

Post autor: Jan_J »

Bo zapytanie jest źle zbudowane. W zapytaniu nadrzędnym nie ma dostępu do pól z zapytania podrzędnego.
Jakaś konstrukcja w rodzaju SELECT ... FROM "a" JOIN "b" ON warunek by się przydała.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Ran
Posty: 16
Rejestracja: pn sty 18, 2016 7:40 pm

Re: kryteria w kwarendach

Post autor: Ran »

Czy mógłbyś troche jasniej tak łopatologicznie wytłumaczyć Może jakiś prosty przykład
OpenOffice 4.1.2 na windows 7
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: kryteria w kwarendach

Post autor: Jan_J »

Masz dwie tabele:

Kod: Zaznacz cały

towary (id, towar, id_dostawcy)
dostawcy(id, dostawca)
Pytanie

Kod: Zaznacz cały

select towar from towary 
jest OK. Podobnie

Kod: Zaznacz cały

select towar from towary where id_dostawcy = (select id from dostawcy where dostawca = 'Krzysio')
bo w obu przypadkach kolumny pochodzą z odpytywanej struktury. Ale

Kod: Zaznacz cały

select towar, dostawca from towary where id_dostawcy in (select id from dostawcy)
nie ma sensu, bo pytasz tabelę towary, a w niej nie ma kolumny dostawca. Właściwym rozwiązaniem będzie

Kod: Zaznacz cały

select towar, dostawca from towary join dostawcy on id_dostawcy = dostawcy.id
U ciebie jest więcej komplikacji, bo podzapytań używasz nie tylko w warunku, ale także do utworzenia tymczasowej struktury FROM ... . Zamiast tego warto użyć JOIN i potem sumować w ramach grupowania.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Ran
Posty: 16
Rejestracja: pn sty 18, 2016 7:40 pm

Re: kryteria w kwarendach

Post autor: Ran »

Nie bardzo to pojmuje .Zrozumiałem tele że w zapytanie powinno znajdować sie podzapytanie ale nie mam pojecia jak to dodać i w którym miejscu kodu.Może któryś z kolegów pokaże mi jak na przykładzie który wyżej napisał kolega(Belstar)dodać do wyniku wyświetlanie jeszcze jedną kolumnę np .id zamówienia .Może to bardziej do mnie przemówi.
OpenOffice 4.1.2 na windows 7
ODPOWIEDZ