🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
4 messages
4 total messages Started by 7704predator Wed, 04 May 2016 17:38
Zwracanie dat bez sprzedaży (ms access 2013, sql)
#137174
Author: 7704predator
Date: Wed, 04 May 2016 17:38
45 lines
2282 bytes
Witam!

Mam tabelę tbDATES zawierającą wszystkie daty od 1/1/2013 do 4/30/2016,
oraz tabelę tb_art_agreg zawierającą dzienną sprzedaż dla artykułów w okresie od 1/1/2013 do 4/30/2016. Jeżeli w danym dniu sprzedaż dla danego artykułu nie wystąpiła brak jest rekordu.

tbDATES
-------
datum (pk)  Date/Time

tb_art_agreg
-----------
date_from (pk) Date/Time
article_id (pk) Long Integer
qty_sold   Double


Dla artykułu 1034272 w okresie 1/1/2016 - 1/5/2016 sprzedaż wystąpiła
tylko w dniu 1/4/2016.

Mam kwerendę, która ma postać:

SELECT d.datum, s.date_from, s.qty_sold
FROM tbDATES AS d LEFT JOIN tb_art_agreg AS s ON d.datum = s.date_from
WHERE (s.article_id is null or s.article_id = 1034272) and (d.datum between #1/1/2016# and #1/5/2016#);

i zwraca taki wynik:

datum	date_from	qty_sold
2016-01-01		
2016-01-04	2016-01-04	-0,53

Co zrobić żeby zwracała:

datum	date_from	qty_sold
2016-01-01		
2016-01-02
2016-01-03
2016-01-04	2016-01-04	-0,53
2016-01-05

Nie rozumiem też tej niekonsekwencji w zwróceniu rekordu dla
daty 2016-01-01.

Z góry dzięki za pomoc.
K.
Re: Zwracanie dat bez sprzedaży (ms access 2013, sql)
#137175
Author: MaciejF
Date: Wed, 04 May 2016 20:00
8 lines
1554 bytes
Może ten null nie jest potrzebny czyli tak:

SELECT d.datum, s.date_from, s.qty_sold 
FROM tbDATES AS d LEFT JOIN tb_art_agreg AS s ON d.datum = s.date_from 
WHERE ((s.article_id = 1034272) and (d.datum between #1/1/2016# and #1/5/2016#));

Pozdrawiam
MF
Re: Zwracanie dat bez sprzedaży (ms access 2013, sql)
#137176
Author: MaciejF
Date: Wed, 04 May 2016 20:09
4 lines
1522 bytes
Nie wiem czy poniższe coś zmienia
Ale spróbuj.

WHERE (((s.article_id) = 1034272) OR ((s.article_id) Is Null)) and ((d.datum) between #1/1/2016# and #1/5/2016#));
Re: Zwracanie dat bez sprzedaży (ms access 2013, sql)
#137177
Author: MaciejF
Date: Wed, 04 May 2016 20:19
1 lines
1574 bytes
WHERE (((s.article_id) = 1034272) OR ((s.article_id) Is Null) AND ((d.datum) between #1/1/2016# and #1/5/2016#))
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