🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych
13 messages
13 total messages Started by Tadeusz Thu, 12 Oct 2017 23:26
SQL - składnia - zestawienie dla całego roku (m-c po m-cu)
#195425
Author: Tadeusz
Date: Thu, 12 Oct 2017 23:26
30 lines
1851 bytes
Dobry wieczór,

mam zapytanie SQL z zakresem dat które się wykonuje poprawnie dla tego
zakresu dat

uproszczony przykład poniżej: 
select region_nazwa, tow_ilosc, tow_cena, towar_ean from trnhead
INNER-y itp.
where (TH.trnhead_data between '2017-01-01' and '2017-01-31')

ale jak zrobić aby wynik wyglądał tak jak na przykładzie poniżej

region_nazwa, tow_ilosc i tow_cena dla stycznia, tow_ilosc i tow_cena
dla lutego, tow_ilosc i tow_cena dla marca, tow_ilosc i tow_cena dla
[...], tow_ilosc i tow_cena dla ... grudnia

nie mam pojęcia jak to rozkminić domniemam że będą to zagnieżdżone
select-y w select-ach ale od wczoraj przeryłem to i owo u wujka Googla i
chyba nie umiem korzystać z pomocy wujka ...


bardzo proszę o podpowiedź co do składni …

pierwszy i ostatni dla każdego miesiąca za dany rok mam juz rozkminione
(chociaż to :/)

z góry dziękuję za jakiekolwiek wskazówki i pomoc

pozdrawiam Tadeusz
1testerr1@o2.pl [bez jedynek oczywiście :/]
Re: SQL - składnia - zestawienie dla całego roku (m-c po m-cu)
#195427
Author: Cezary Grądys
Date: Fri, 13 Oct 2017 06:08
31 lines
2255 bytes
W dniu 13.10.2017 o 01:26, Tadeusz pisze:
> Dobry wieczór,
> 
> mam zapytanie SQL z zakresem dat które się wykonuje poprawnie dla tego
> zakresu dat
> 
> uproszczony przykład poniżej:
> select region_nazwa, tow_ilosc, tow_cena, towar_ean from trnhead
> INNER-y itp.
> where (TH.trnhead_data between '2017-01-01' and '2017-01-31')
> 
> ale jak zrobić aby wynik wyglądał tak jak na przykładzie poniżej
> 
> region_nazwa, tow_ilosc i tow_cena dla stycznia, tow_ilosc i tow_cena
> dla lutego, tow_ilosc i tow_cena dla marca, tow_ilosc i tow_cena dla
> [...], tow_ilosc i tow_cena dla ... grudnia
> 
> nie mam pojęcia jak to rozkminić domniemam że będą to zagnieżdżone
> select-y w select-ach ale od wczoraj przeryłem to i owo u wujka Googla i
> chyba nie umiem korzystać z pomocy wujka ...
> 
> 
> bardzo proszę o podpowiedź co do składni …
> 
> pierwszy i ostatni dla każdego miesiąca za dany rok mam juz rozkminione
> (chociaż to :/)
> 
> z góry dziękuję za jakiekolwiek wskazówki i pomoc
> 

Chyba potrzebujesz GROUP BY.
Re: SQL - składnia - zestawienie dla całego rok u (m-c po m-cu)
#195428
Author: Tadeusz
Date: Fri, 13 Oct 2017 07:29
39 lines
2337 bytes
Cezary Grądys wrote:

> W dniu 13.10.2017 o 01:26, Tadeusz pisze:
> > Dobry wieczór,
> > 
> > mam zapytanie SQL z zakresem dat które się wykonuje poprawnie dla tego
> > zakresu dat
> > 
> > uproszczony przykład poniżej:
> > select region_nazwa, tow_ilosc, tow_cena, towar_ean from trnhead
> > INNER-y itp.
> > where (TH.trnhead_data between '2017-01-01' and '2017-01-31')
> > 
> > ale jak zrobić aby wynik wyglądał tak jak na przykładzie poniżej
> > 
> > region_nazwa, tow_ilosc i tow_cena dla stycznia, tow_ilosc i tow_cena
> > dla lutego, tow_ilosc i tow_cena dla marca, tow_ilosc i tow_cena dla
> > [...], tow_ilosc i tow_cena dla ... grudnia
> > 
> > nie mam pojęcia jak to rozkminić domniemam że będą to zagnieżdżone
> > select-y w select-ach ale od wczoraj przeryłem to i owo u wujka Googla i
> > chyba nie umiem korzystać z pomocy wujka ...
> > 
> > 
> > bardzo proszę o podpowiedź co do składni …
> > 
> > pierwszy i ostatni dla każdego miesiąca za dany rok mam juz rozkminione
> > (chociaż to :/)
> > 
> > z góry dziękuję za jakiekolwiek wskazówki i pomoc
> > 
> 
> Chyba potrzebujesz GROUP BY.

Na początku dla region_nazwa OK, to rozumiem,
ale jak te zakresy dla każdego miesiąca osobno wyciągnąć i zostawić
tylko ceni i ilosc, bo wynik nie zwraca jednej pozycji ...?

proszę o jakis schemat...
Re: SQL - składnia - zestawienie dla całego roku (m-c po m-cu)
#195396
Author: geos
Date: Fri, 13 Oct 2017 07:52
43 lines
2777 bytes
On 13.10.2017 01:26, Tadeusz wrote:

> region_nazwa, tow_ilosc i tow_cena dla stycznia, tow_ilosc i tow_cena
> dla lutego, tow_ilosc i tow_cena dla marca, tow_ilosc i tow_cena dla
> [...], tow_ilosc i tow_cena dla ... grudnia
>
> nie mam pojęcia jak to rozkminić domniemam że będą to zagnieżdżone
> select-y w select-ach ale od wczoraj przeryłem to i owo u wujka Googla i
> chyba nie umiem korzystać z pomocy wujka ...
>
> bardzo proszę o podpowiedź co do składni …

dużo napisałeś, ale bez podania bazy danych i przykładu z kilkoma 
rekordami: jak wygląda pula rekordów, którą chcesz przekształcić i co 
chciałbyś z niej uzyskać. niemniej jednak możesz zerknąć tutaj, być może 
akurat to masz na myśli:

https://groups.google.com/d/msg/pl.comp.bazy-danych/3uviy3tR64U/FaOvZJmoAAAJ

interesuje Cię ostatni SQL. stosujesz case w postaci:

case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
      then region_nazwa
      end region_styczeń,
case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
      then tow_ilosc
      end tow_ilosc_styczeń,
case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
      then tow_cena
      end tow_cena_styczeń

i dalej dla pozostałych miesięcy. jak zrobisz tylko te case to będziesz 
miał zestawienia, ale "dziurawe": każdy będzie zawierał rekordy tylko 
dla 1 miesiąca, pozostałe będą puste. i tu wkracza group by + jakaś 
funkcja agregująca, jeśli w ogóle, prawdopodobnie sum na tow_ilość. nie 
wiem jakiej funkcji chcesz użyć dla tow_cena, bo ceny zazwyczaj się albo 
uśrednia ale chyba rzadko sumuje dla różnych towarów. być może więc nie 
będzie dla ceny funkcji agregującej.

gdybyś podał przykład to byłoby jasne co chcesz uzyskać bez zgadywania.

pozdrawiam,
geos
Re: SQL - składnia - zestawienie dla całego rok u (m-c po m-cu)
#195399
Author: Tadeusz
Date: Fri, 13 Oct 2017 09:53
81 lines
4238 bytes
Dzień dobry,

zapytanie wygląda tak (MySQL)

select R.region_nazwa, TH.trnhead_doc_typ, R0.region0_nazwa,
R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa, TOW.towar_nazwa,
TE.trnelem_tow_ilosc, TE.trnelem_tow_cena ,TOW.towar_ean_gtin from
db_u_hurtownie.trnhead TH 
inner join db_u_hurtownie.trnelem TE ON ((TH.trnhead_telem_id =
TE.trnelem_head_id)) 
inner join db_u_hurtownie.hurtownie H ON TH.trnhead_hurt_id = H.hurt_id
inner join db_u_hurtownie.kontrah K ON TH.trnhead_kontrah_nip =
K.kontrah_nip
inner join db_u_hurtownie.region R ON K.kontrah_region_id = R.region_id
inner join db_u_hurtownie.region0 R0 ON R.region0_id = R0.region0_id 
inner join db_u_hurtownie.region1 R1 ON R.region1_id = R1.region1_id
inner join db_u_hurtownie.region2 R2 ON R.region2_id = R2.region2_id
inner join db_u_hurtownie.towar TOW ON TE.trnelem_tow_gtin =
TOW.towar_ean_gtin
where ((TH.trnhead_data between '2017-01-01' and '2017-01-01') and
(R.region_id = 3))
order by R.region_nazwa, TOW.towar_nazwa, TH.trnhead_doc_typ,
H.hurt_nazwa
;

i chcę aby TE.trnelem_tow_ilosc, TE.trnelem_tow_cena ,TOW.towar_ean_gtin
były poagregowane dla każdego miesiąca osobno,

zakresy dat dla każdego miesiąca od do mam rozwiązane zmiennymi chodzi o
konstrukcję SQLa

z góry dziękuję za pomoc,



geos wrote:

> On 13.10.2017 01:26, Tadeusz wrote:
> 
> > region_nazwa, tow_ilosc i tow_cena dla stycznia, tow_ilosc i tow_cena
> > dla lutego, tow_ilosc i tow_cena dla marca, tow_ilosc i tow_cena dla
> > [...], tow_ilosc i tow_cena dla ... grudnia
> >
> > nie mam pojęcia jak to rozkminić domniemam że będą to zagnieżdżone
> > select-y w select-ach ale od wczoraj przeryłem to i owo u wujka Googla i
> > chyba nie umiem korzystać z pomocy wujka ...
> >
> > bardzo proszę o podpowiedź co do składni …
> 
> dużo napisałeś, ale bez podania bazy danych i przykładu z kilkoma 
> rekordami: jak wygląda pula rekordów, którą chcesz przekształcić i co 
> chciałbyś z niej uzyskać. niemniej jednak możesz zerknąć tutaj, być może 
> akurat to masz na myśli:
> 
> https://groups.google.com/d/msg/pl.comp.bazy-danych/3uviy3tR64U/FaOvZJmoAAAJ
> 
> interesuje Cię ostatni SQL. stosujesz case w postaci:
> 
> case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
>       then region_nazwa
>       end region_styczeń,
> case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
>       then tow_ilosc
>       end tow_ilosc_styczeń,
> case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
>       then tow_cena
>       end tow_cena_styczeń
> 
> i dalej dla pozostałych miesięcy. jak zrobisz tylko te case to będziesz 
> miał zestawienia, ale "dziurawe": każdy będzie zawierał rekordy tylko 
> dla 1 miesiąca, pozostałe będą puste. i tu wkracza group by + jakaś 
> funkcja agregująca, jeśli w ogóle, prawdopodobnie sum na tow_ilość. nie 
> wiem jakiej funkcji chcesz użyć dla tow_cena, bo ceny zazwyczaj się albo 
> uśrednia ale chyba rzadko sumuje dla różnych towarów. być może więc nie 
> będzie dla ceny funkcji agregującej.
> 
> gdybyś podał przykład to byłoby jasne co chcesz uzyskać bez zgadywania.
> 
> pozdrawiam,
> geos
> 
Re: SQL - składnia - zestawienie dla całego rok u (m-c po m-cu)
#195401
Author: geos
Date: Fri, 13 Oct 2017 09:59
5 lines
1257 bytes
On 13.10.2017 11:53, Tadeusz wrote:
> i chcę aby TE.trnelem_tow_ilosc, TE.trnelem_tow_cena ,TOW.towar_ean_gtin
> były poagregowane dla każdego miesiąca osobno,

jaką funkcją mają być poagregowane i które wartości?
Re: SQL - składnia - zestawienie dla całego rok u (m-c po m-cu)
#195416
Author: Lesiok
Date: Fri, 13 Oct 2017 10:01
93 lines
4672 bytes
W dniu 2017-10-13 o 11:53, Tadeusz pisze:
> Dzień dobry,
> 
> zapytanie wygląda tak (MySQL)
> 
> select R.region_nazwa, TH.trnhead_doc_typ, R0.region0_nazwa,
> R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa, TOW.towar_nazwa,
> TE.trnelem_tow_ilosc, TE.trnelem_tow_cena ,TOW.towar_ean_gtin from
> db_u_hurtownie.trnhead TH
> inner join db_u_hurtownie.trnelem TE ON ((TH.trnhead_telem_id =
> TE.trnelem_head_id))
> inner join db_u_hurtownie.hurtownie H ON TH.trnhead_hurt_id = H.hurt_id
> inner join db_u_hurtownie.kontrah K ON TH.trnhead_kontrah_nip =
> K.kontrah_nip
> inner join db_u_hurtownie.region R ON K.kontrah_region_id = R.region_id
> inner join db_u_hurtownie.region0 R0 ON R.region0_id = R0.region0_id
> inner join db_u_hurtownie.region1 R1 ON R.region1_id = R1.region1_id
> inner join db_u_hurtownie.region2 R2 ON R.region2_id = R2.region2_id
> inner join db_u_hurtownie.towar TOW ON TE.trnelem_tow_gtin =
> TOW.towar_ean_gtin
> where ((TH.trnhead_data between '2017-01-01' and '2017-01-01') and
> (R.region_id = 3))
> order by R.region_nazwa, TOW.towar_nazwa, TH.trnhead_doc_typ,
> H.hurt_nazwa
> ;
> 
> i chcę aby TE.trnelem_tow_ilosc, TE.trnelem_tow_cena ,TOW.towar_ean_gtin
> były poagregowane dla każdego miesiąca osobno,
> 
> zakresy dat dla każdego miesiąca od do mam rozwiązane zmiennymi chodzi o
> konstrukcję SQLa
> 
> z góry dziękuję za pomoc,
> 
> 
> 
> geos wrote:
> 
>> On 13.10.2017 01:26, Tadeusz wrote:
>>
>>> region_nazwa, tow_ilosc i tow_cena dla stycznia, tow_ilosc i tow_cena
>>> dla lutego, tow_ilosc i tow_cena dla marca, tow_ilosc i tow_cena dla
>>> [...], tow_ilosc i tow_cena dla ... grudnia
>>>
>>> nie mam pojęcia jak to rozkminić domniemam że będą to zagnieżdżone
>>> select-y w select-ach ale od wczoraj przeryłem to i owo u wujka Googla i
>>> chyba nie umiem korzystać z pomocy wujka ...
>>>
>>> bardzo proszę o podpowiedź co do składni …
>>
>> dużo napisałeś, ale bez podania bazy danych i przykładu z kilkoma
>> rekordami: jak wygląda pula rekordów, którą chcesz przekształcić i co
>> chciałbyś z niej uzyskać. niemniej jednak możesz zerknąć tutaj, być może
>> akurat to masz na myśli:
>>
>> https://groups.google.com/d/msg/pl.comp.bazy-danych/3uviy3tR64U/FaOvZJmoAAAJ
>>
>> interesuje Cię ostatni SQL. stosujesz case w postaci:
>>
>> case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
>>        then region_nazwa
>>        end region_styczeń,
>> case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
>>        then tow_ilosc
>>        end tow_ilosc_styczeń,
>> case when TH.trnhead_data between '2017-01-01' and '2017-01-31'
>>        then tow_cena
>>        end tow_cena_styczeń
>>
>> i dalej dla pozostałych miesięcy. jak zrobisz tylko te case to będziesz
>> miał zestawienia, ale "dziurawe": każdy będzie zawierał rekordy tylko
>> dla 1 miesiąca, pozostałe będą puste. i tu wkracza group by + jakaś
>> funkcja agregująca, jeśli w ogóle, prawdopodobnie sum na tow_ilość. nie
>> wiem jakiej funkcji chcesz użyć dla tow_cena, bo ceny zazwyczaj się albo
>> uśrednia ale chyba rzadko sumuje dla różnych towarów. być może więc nie
>> będzie dla ceny funkcji agregującej.
>>
>> gdybyś podał przykład to byłoby jasne co chcesz uzyskać bez zgadywania.
>>
>> pozdrawiam,
>> geos
>>
> 
No to doczytaj sobie o :
1. extract from date
2. group by
3. pivot

i będziesz miał problem rozwiązany.

-- 
Pozdrawiam,
Leszek Kubrak
Re: SQL - skı‚adnia - zestawienie dla caı ‚ego rok u (m-c po m-cu)
#195403
Author: Tadeusz
Date: Fri, 13 Oct 2017 10:29
14 lines
1720 bytes
geos wrote:

> On 13.10.2017 11:53, Tadeusz wrote:
> > i chcę aby TE.trnelem_tow_ilosc, TE.trnelem_tow_cena ,TOW.towar_ean_gtin
> > były poagregowane dla każdego miesiąca osobno,
> 
> jaką funkcją mają być poagregowane i które wartości?

suma dla TE.trnelem_tow_ilosc, TE.trnelem_tow_cena na każdy miesiąć
dla poagregowanych  R.region_nazwa, TH.trnhead_doc_typ,
R0.region0_nazwa, R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa,
TOW.towar_nazw, TOW.towar_ean_gtin

dziękuję.
Re: SQL - skı‚adnia - zestawienie dla caı ‚ego rok u (m-c po m-cu)
#195405
Author: geos
Date: Fri, 13 Oct 2017 10:58
47 lines
2737 bytes
On 13.10.2017 12:29, Tadeusz wrote:

> suma dla TE.trnelem_tow_ilosc, TE.trnelem_tow_cena na każdy miesiąć
> dla poagregowanych  R.region_nazwa, TH.trnhead_doc_typ,
> R0.region0_nazwa, R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa,
> TOW.towar_nazw, TOW.towar_ean_gtin

pouzupełniaj SQLa poniżej odpowiednimi case'ami i sprawdź czy o to Ci 
chodzi, bo mam mieszane uczucia.. przykład z danymi "wymyślonymi" by 
ułatwił sprawę. ewentualnie zainteresuj się pivotem jak doradził Lesiok.

pozdrawiam,
geos

select
   a, b, c, d, e, f, g, h
, max(case when miesiac = 1 then ilosc end) ilosc_1
,	max(case when miesiac = 1 then cena end) cena_1
..
, max(case when miesiac = 12 then ilosc end) ilosc_12
,	max(case when miesiac = 12 then cena end) cena_12
from (
select
   R.region_nazwa a
, TH.trnhead_doc_typ b
, R0.region0_nazwa c
, R1.region1_nazwa d
, R2.region2_nazwa e
, H.hurt_nazwa f
, TOW.towar_nazwa g
, TOW.towar_ean_gtin h
, sum(TE.trnelem_tow_ilosc) ilosc
, sum(TE.trnelem_tow_cena) cena
, extract(month from TH.trnhead_data) miesiac
from
db_u_hurtownie.trnhead TH
inner join
...
where
     TH.trnhead_data between '2017-01-01' and '2017-12-31'
and R.region_id = 3
group by
   R.region_nazwa, TH.trnhead_doc_typ, R0.region0_nazwa
, R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa
, TOW.towar_nazw, TOW.towar_ean_gtin
, extract(month from TH.trnhead_data) )
group by a,b,c,d,e,f,g,h;
Re: SQL - skı‚adnia - zestawienie dl YSBjYcOExIUgw4LCgmVnbyByb2sgdSAobS1jIHBvIG0tY3Up
#195407
Author: Tadeusz
Date: Fri, 13 Oct 2017 18:52
67 lines
3352 bytes
geos wrote:

> On 13.10.2017 12:29, Tadeusz wrote:
> 
> > suma dla TE.trnelem_tow_ilosc, TE.trnelem_tow_cena na każdy miesiąć
> > dla poagregowanych  R.region_nazwa, TH.trnhead_doc_typ,
> > R0.region0_nazwa, R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa,
> > TOW.towar_nazw, TOW.towar_ean_gtin
> 
> pouzupełniaj SQLa poniżej odpowiednimi case'ami i sprawdź czy o to Ci 
> chodzi, bo mam mieszane uczucia.. przykład z danymi "wymyślonymi" by 
> ułatwił sprawę. ewentualnie zainteresuj się pivotem jak doradził Lesiok.
> 
> pozdrawiam,
> geos
> 
> select
>    a, b, c, d, e, f, g, h
> , max(case when miesiac = 1 then ilosc end) ilosc_1
> ,      max(case when miesiac = 1 then cena end) cena_1
> ...
> , max(case when miesiac = 12 then ilosc end) ilosc_12
> ,      max(case when miesiac = 12 then cena end) cena_12
> from (
> select
>    R.region_nazwa a
> , TH.trnhead_doc_typ b
> , R0.region0_nazwa c
> , R1.region1_nazwa d
> , R2.region2_nazwa e
> , H.hurt_nazwa f
> , TOW.towar_nazwa g
> , TOW.towar_ean_gtin h
> , sum(TE.trnelem_tow_ilosc) ilosc
> , sum(TE.trnelem_tow_cena) cena
> , extract(month from TH.trnhead_data) miesiac
> from
> db_u_hurtownie.trnhead TH
> inner join
> ....
> where
>      TH.trnhead_data between '2017-01-01' and '2017-12-31'
> and R.region_id = 3
> group by
>    R.region_nazwa, TH.trnhead_doc_typ, R0.region0_nazwa
> , R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa
> , TOW.towar_nazw, TOW.towar_ean_gtin
> , extract(month from TH.trnhead_data) )
> group by a,b,c,d,e,f,g,h;

na wstępie - dziękuję za poswięcony czas !

przerobiłem inny raport analogicznie tylko z sumowaniem towarów i
otrzymałem komunikat:
Error Code: 1248. Every derived table must have its own alias

i nie wiem dlaczego, że do piero po otwarciu wina wpadłem na to że
brakuje aliasu dla przedostatniej linii :/
tzn.:
> , extract(month from TH.trnhead_data) ) as cokolwiek

to zrozumiałem, natomiast korelacji z towarciem wina NIE :)

jeśli jest Pan z Wielkopolski to osobiście jestem winien conajmniej
dużego browara :) (lub winiacza)

Dziękuję Panu i Wszystkim za poświęcony czas!
Re: SQL - skı‚adnia - zestawienie dl YSBjYcOExIUgw4LCgmVnbyByb2sgdSAobS1jIHBvIG0tY3Up
#195410
Author: Tadeusz
Date: Fri, 13 Oct 2017 22:25
62 lines
3250 bytes
geos wrote:

> On 13.10.2017 12:29, Tadeusz wrote:
> 
> > suma dla TE.trnelem_tow_ilosc, TE.trnelem_tow_cena na każdy miesiąć
> > dla poagregowanych  R.region_nazwa, TH.trnhead_doc_typ,
> > R0.region0_nazwa, R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa,
> > TOW.towar_nazw, TOW.towar_ean_gtin
> 
> pouzupełniaj SQLa poniżej odpowiednimi case'ami i sprawdź czy o to Ci 
> chodzi, bo mam mieszane uczucia.. przykład z danymi "wymyślonymi" by 
> ułatwił sprawę. ewentualnie zainteresuj się pivotem jak doradził Lesiok.
> 
> pozdrawiam,
> geos
> 
> select
>    a, b, c, d, e, f, g, h
> , max(case when miesiac = 1 then ilosc end) ilosc_1
> ,      max(case when miesiac = 1 then cena end) cena_1
> ...
> , max(case when miesiac = 12 then ilosc end) ilosc_12
> ,      max(case when miesiac = 12 then cena end) cena_12
> from (
> select
>    R.region_nazwa a
> , TH.trnhead_doc_typ b
> , R0.region0_nazwa c
> , R1.region1_nazwa d
> , R2.region2_nazwa e
> , H.hurt_nazwa f
> , TOW.towar_nazwa g
> , TOW.towar_ean_gtin h
> , sum(TE.trnelem_tow_ilosc) ilosc
> , sum(TE.trnelem_tow_cena) cena
> , extract(month from TH.trnhead_data) miesiac
> from
> db_u_hurtownie.trnhead TH
> inner join
> ....
> where
>      TH.trnhead_data between '2017-01-01' and '2017-12-31'
> and R.region_id = 3
> group by
>    R.region_nazwa, TH.trnhead_doc_typ, R0.region0_nazwa
> , R1.region1_nazwa, R2.region2_nazwa, H.hurt_nazwa
> , TOW.towar_nazw, TOW.towar_ean_gtin
> , extract(month from TH.trnhead_data) )
> group by a,b,c,d,e,f,g,h;

dla powyższego zapytania, tam gdzie nie ma danych jest wpisywane null

mam jeszcze jedno pytanie - czy można wymusic wpisanie zera "0" gdy jest
null?

dodam że próbowałem funkcji IFNULL i COALESCE dla wartości ilosc (w
case-ach) jak i w podzapytaniu gdzie jest sum(TE.trnelem_tow_ilosc) as
ILOSC

no i bez zmian jakieś inne propozycje ...?

z góry dziękuję
Re: SQL - skı‚adnia - zestawienie dl YSBjYcOExIUgw4LCgmVnbyByb2sgdSAobS1jIHBvIG0tY3Up
#195412
Author: Andrzej Stróżyński
Date: Sat, 14 Oct 2017 06:19
12 lines
1770 bytes
W dniu 2017-10-14 o 00:25, Tadeusz pisze:
> max(case when miesiac = 1 then ilosc end) ilosc_1

max(case when miesiac = 1 then ilosc else 0 end) ilosc_1
O to chodzi?

PS
Wino tylko otwarłeś czy była degustacja? ;)

-- 
pozdrawiam
AS
Re: SQL - skı‚adnia - zestawie nie dl YSBjYcOExIUgw4LCgmVnbyByb2sgdSAobS1jIHBvIG0tY3Up
#195414
Author: Tadeusz
Date: Sat, 14 Oct 2017 09:09
17 lines
1717 bytes
Andrzej Stróżyński wrote:

> W dniu 2017-10-14 o 00:25, Tadeusz pisze:
> > max(case when miesiac = 1 then ilosc end) ilosc_1
> 
> max(case when miesiac = 1 then ilosc else 0 end) ilosc_1
> O to chodzi?
> 
> PS
> Wino tylko otwarłeś czy była degustacja? ;)
> 
> 

Działa poprawnie, dziękuję.

P.S.
Było to i to :)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads