Wybór wiersza z najmniejszą wartością

Wybór wiersza z najmniejszą wartością
R6
  • Rejestracja:około 3 lata
  • Ostatnio:około 3 lata
  • Postów:3
0

Witam,

chciałbym wyświetlić wiersz z najmniejszą wartością BBD, lecz napotykam problem, w którym pokazuje mi minimalną wartość w kolumnie, którą wybieram, lecz wartości z innych kolumn nie są z tego wiersza.

Mianowicie:

WITH a AS(
SELECT sbk_ml_id, sbk_ml_label AS lokacja
FROM new_sbk_magazines_locations)

SELECT sbk_mlp_exp_date AS BBD, lokacja, sbk_ml_label, sbk_p_ean, sbk_mlp_qty
FROM
new_sbk_magazines_locations_products
LEFT JOIN new_sbk_magazines_locations ON new_sbk_magazines_locations_products.sbk_ml_id=new_sbk_magazines_locations.sbk_ml_id
LEFT JOIN sbk_products ON sbk_products.sbk_p_id=new_sbk_magazines_locations_products.sbk_p_id
LEFT JOIN a ON a.sbk_ml_id=new_sbk_magazines_locations.sbk_ml_parent_id
WHERE lokacja LIKE ('R%')
AND sbk_p_ean IN ('8936020052540')

wyświetla:

nr BBD lokacja sbk_ml_label sbk_p_ean sbk_mlp_qty
1 2023-05-20 R-02-11-0 P-702-001 8936020052540 39
2 2023-04-10 R-05-30-2 P-709-621 8936020052540 1536
3 2023-04-10 R-05-33-2 P-709-625 8936020052540 1536
4 2023-04-10 R-06-23-1 P-709-633 8936020052540 1397
5 2023-04-10 R-06-09-0 P-709-635 8936020052540 643
6 2023-04-10 R-04-55-0 P-709-954 8936020052540 104
7 2023-04-10 R-06-37-0 P-710-972 8936020052540 16
8 2023-04-10 R-05-24-0 P-712-304 8936020052540 158

natomiast

WITH a AS(
SELECT sbk_ml_id, sbk_ml_label AS lokacja
FROM new_sbk_magazines_locations)

SELECT MIN(sbk_mlp_exp_date) AS BBD, lokacja, sbk_ml_label, sbk_p_ean, sbk_mlp_qty
FROM
new_sbk_magazines_locations_products
LEFT JOIN new_sbk_magazines_locations ON new_sbk_magazines_locations_products.sbk_ml_id=new_sbk_magazines_locations.sbk_ml_id
LEFT JOIN sbk_products ON sbk_products.sbk_p_id=new_sbk_magazines_locations_products.sbk_p_id
LEFT JOIN a ON a.sbk_ml_id=new_sbk_magazines_locations.sbk_ml_parent_id
WHERE lokacja LIKE ('R%')
AND sbk_p_ean IN ('8936020052540')

wyświetla

nr BBD lokacja sbk_ml_label sbk_p_ean sbk_mlp_qty
1 2023-04-10 R-02-11-0 P-702-001 8936020052540 39

Czyli faktycznie MIN dla BBD, lecz cała reszta jest z wiersza, który miał BBD "2023-05-20".

Czy ktoś się z tym spotkał?

CJ
CJ
  • Rejestracja:około 3 lata
  • Ostatnio:około 3 lata
  • Postów:21
3

Posortój po BBD i weź piewrwszy z góry.

R6
  • Rejestracja:około 3 lata
  • Ostatnio:około 3 lata
  • Postów:3
0

No właśnie to nie jest takie proste.
Przykład zawęziłem do wyniku jednego produktu, lecz docelowe zapytanie bierze pod uwagę wszystkie produkty, które mają różne BBD i lokacje, i wyświetla mi najmniejsze BBD dla danego produktu, lecz niepoprawną lokację:

lokacja sbk_ml_label sbk_p_ean sbk_mlp_qty BBD
R-02-32-0 P-711-937 4038375024396 9 2022-10-18
R-02-11-0 P-702-001 8936020052540 39 2023-05-20
R-03-33-0 P-712-716 5900852041167 18 2022-05-19
R-06-51-3 P-713-416 5029053527598 188 2024-12-05
R-04-34-0 P-713-118 5411188119753 496 2022-10-03
R-05-03-0 P-711-431 5902078004803 646 2023-08-31
R-03-60-3 P-713-255 7613037076707 270 2023-10-31
R-06-15-0 P-713-572 5901958612688 2736 2022-12-17
R-02-56-1 P-712-872 5902488066095 304 2022-10-12
R-02-25-2 P-710-777 5903229001627 159 2024-06-14
R-05-36-2 P-713-187 818075009664 1251 2023-08-20
R-06-12-2 P-713-591 5411188081852 576 2022-09-05
R-01-45-3 P-709-924 5099514200209 553 2022-12-31
R-03-23-4 P-713-024 5900852046070 892 2022-05-21

R6
  • Rejestracja:około 3 lata
  • Ostatnio:około 3 lata
  • Postów:3
0

Ok, to było proste rozwiązanie, lecz genialne. Zwracam honor.

Dziękuję i zamykam.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)