Autor Wątek: Łączenie tabel w sql c.d  (Przeczytany 1106 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Paweł Em

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Wersja programu: 1.65
Łączenie tabel w sql c.d
« dnia: Styczeń 12, 2021, 16:38:39 »
Witam wszystkich użytkowników.

Na wstępie dziękuję bardzo użytkownikowi birds22 za pomoc, teraz poszedłem dalej i został mi ostatni aspekt żebym mógł pobrać wszystkie interesujące mnie dane do excela i tam je przetwarzać.
Mianowicie komplety u mnie składają się z jednego lub dwóch składników. Jeżeli są dwa to wtedy każdą pozycję wypisuje mi w dwóch linijkach bo w każdej z nich jest inny składnik(załącznik).
Pytanie brzmi czy jest możliwość dołączenia tych skłądników tak aby każdy asortyment mający dwa składniki był w jednej linii a nie dwóch?

Offline maniootek

  • Aktywny użytkownik
  • ***
  • Wiadomości: 102
  • Reputacja +0/-0
Odp: Łączenie tabel w sql c.d
« Odpowiedź #1 dnia: Styczeń 12, 2021, 19:06:32 »
SELECT
tw_Symbol
,TowarSkladnikiKompletu = (
  STUFF (
(
  SELECT
'|' + (SELECT tw_Symbol FROM tw__Towar WHERE tw_Id = KPL.kpl_IdSkladnik) + 'x' + CAST(KPL.kpl_Liczba AS VARCHAR(MAX))
  FROM
tw_Komplet KPL
JOIN tw__Towar on kpl_IdKomplet = tw_Id
  WHERE
tw_Id = TOWAR.tw_Id FOR XML PATH ('')
),
1,
1,
''
  )
)
FROM tw__Towar TOWAR
WHERE tw_Rodzaj = 8
ORDER by tw_Symbol

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1005
  • Reputacja +37/-1
  • Wersja programu: Navireo
Odp: Łączenie tabel w sql c.d
« Odpowiedź #2 dnia: Styczeń 13, 2021, 08:41:14 »

Offline Paweł Szczygiel

  • Aktywny użytkownik
  • ***
  • Wiadomości: 120
  • Reputacja +3/-0
Odp: Łączenie tabel w sql c.d
« Odpowiedź #3 dnia: Styczeń 13, 2021, 13:18:54 »
Znacznie lepszym podejściem jest utworzenie widoków na bazie danych i podłączenie ich do Excela,  bezpośrednio jako źródło do tabel przestawnych.
Paweł Szczygieł

Offline Paweł Em

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Wersja programu: 1.65
Odp: Łączenie tabel w sql c.d
« Odpowiedź #4 dnia: Styczeń 13, 2021, 23:04:17 »
Dzięki Panowie!
Wszystko działa dzięki maniootek.
Yemet - dla podniesienia swoich umiejętności również sprawdzę Twoje rozwiązanie:)
Paweł Szczegieł jakie zalety są taakiego rozwiązania?

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1005
  • Reputacja +37/-1
  • Wersja programu: Navireo
Odp: Łączenie tabel w sql c.d
« Odpowiedź #5 dnia: Styczeń 14, 2021, 08:15:27 »
Widoki zazwyczaj są bardzo pożyteczne. Baza subiekta jest nimi napakowana. Są wykorzystywane w wielu miejscach przez sam program - od list dokumentów po zestawienia. W wielu przypadkach ułatwiają nanoszenie poprawek i pozwalają na tworzenie wielu różnych raportów na podstawie jednego zestawu danych - przykładowo zestawienia sprzedaż wg kontrahentów i sprzedaż wg asortymentu są zrobione w oparciu o ten sam widok.

Załóżmy, że planujesz zrobić bardzo podobny arkusz, gdzie będzie miał jedno czy dwa pola więcej - wtedy będziesz musiał całe to zapytanie przeklejać do arkusza i rozbudowywać a tak mógłbyś odwołać się do widoku i tylko doczepić do niego dodatkowe pola. Jeśli będziesz miał jakiś babol w obliczeniach gdzieś walniesz plusa zamiast minusa albo podobną bzdetę - musisz poprawić to w arkuszu (i nie daj boże jeszcze ten arkusz rozesłać po 3/4 firmy) a jak zrobisz widok w bazie to wystarczy poprawka w bazie i odświeżenie danych w arkuszu.
« Ostatnia zmiana: Styczeń 14, 2021, 08:20:00 wysłana przez yemet »

Offline Paweł Szczygiel

  • Aktywny użytkownik
  • ***
  • Wiadomości: 120
  • Reputacja +3/-0
Odp: Łączenie tabel w sql c.d
« Odpowiedź #6 dnia: Styczeń 14, 2021, 08:33:23 »
Temat jest bardzo szeroki o określony pojęciem BI. Jeżeli mówimy o dobrych praktykach w BI to nie ma mowy o rozwiązaniach w których należy kopiować cookolwiek.
Podstawowy BI można oprzeć o widoki - to pozwala na analizę bieżącą bez czynności pośrednich takich jak kopiowanie.
Paweł Szczygieł

Offline Paweł Em

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Wersja programu: 1.65
Odp: Łączenie tabel w sql c.d
« Odpowiedź #7 dnia: Styczeń 14, 2021, 15:24:59 »
Okej, pojęcie widoków jest dla mnie nowe ponieważ póki co się uczę generalnie pracuję na subiekcie od lat jako normalny użytkownik. Excela oraz  vba znam w jakimś tam stopniu.
Generalnie staram się zrobić program do zlecania na produkcję, dlatego używając wbudowane makro w przycisk i to zapytanie sql automatycznie pobieram interesujące mnie tabele do excela(wiadomo cena jest niepotrzebna ale będę również chciał analizować dane więc nie zaszkodzi) Napisałem także makro które nazwę każdego produktu rozbija na kolumny i tym sposobem mam interfejs pozwalający przeglądać indeksy i je filtrować, po wskazaniu odpowiedniego produktu i wpisaniu ilości wyeksportuje na listę w osobnym pliku i będzie można to wydrukować lub przesłać na produkcję. W przyszłości może dodam komplementację żeby odrazu montować jak zejdzie  z produkcji. Generalnie chodzi o zwiększenie wglądu w stan realizacji na produkcji,bo narazie zlecamy na kartkach długopisem bo tak najszybciej :D. Jesteście Panowie bardziej doświadczeni w tym temacie, czy to dobra droga czy lepiej będzie oprzeć to wszystko na widokach? Wiem że w subiekcie można wygenerować zamówienie do dostawcy ale za długo by to trwało.

Forum Użytkownikow Subiekt GT

Odp: Łączenie tabel w sql c.d
« Odpowiedź #7 dnia: Styczeń 14, 2021, 15:24:59 »