Skocz do zawartości

Własne zestawienie SQL

Polecane posty

Witam serdecznie,

Jestem początkujący w tworzeniu zestawień własnych SQL.

Potrzebuje stworzyć zestawienie SQL do Programu Subiekt GT, które będzie wyświetlało listę towarów/usług wraz z ważnymi informacjami o zamówieniu. Wszelkie dane są pobierane z zamówień od klientów. Napotkałem problem z wyciągnięciem nr faktury zrealizowanego zamówienia. Z tego co widzę, rekord zamówienia w tabeli dok__Dokument nie zawiera informacji, która pozwoliłaby mi zlokalizować rekord faktury powiązanej lub w jakiś sposób pomóc zlokalizować jej numer. Może ktoś z Was się orientuje w jaki sposób wyciągnąć numer faktury powiązanej z zamówieniem ?

 

Pozdrawiam

Link to postu
44 minuty temu, Marcin Sentyrz napisał:

Potrzebuje stworzyć zestawienie SQL do Programu Subiekt GT, które będzie wyświetlało listę towarów/usług wraz z ważnymi informacjami o zamówieniu. Wszelkie dane są pobierane z zamówień od klientów. Napotkałem problem z wyciągnięciem nr faktury zrealizowanego zamówienia. Z tego co widzę, rekord zamówienia w tabeli dok__Dokument nie zawiera informacji, która pozwoliłaby mi zlokalizować rekord faktury powiązanej lub w jakiś sposób pomóc zlokalizować jej numer.

Niestety nie wyjaśnił Pan gdzie i w jaki sposób patrzy, ale taka informacja jak najbardziej jest zawarta w tabeli dok__Dokument, cytat z dokumentacji bazy danych:

Cytat

9 | dok_DoDokId | Identyfikator dokumentu powiązanego. Dla KFS-FS; KFZ-FZ;WZ-FS; VWZ-FS; PZ-FZ; VPZ-FZ; ZW-PA/PI; ZK-FS; ZD-FZ; FD-PA/PI; WZ-ZKzal

Zwracam tylko uwagę, że ZK może być realizowane bezpośrednio do FS jak również poprzez WZ.

 

--

50 minut temu, Marcin Sentyrz napisał:

Może ktoś z Was się orientuje w jaki sposób wyciągnąć numer faktury powiązanej z zamówieniem ?

Najprościej jest patrzeć co robi program, skąd pobiera dane za pomocą narzędzi typu profiler. Warto też konsultować takie potrzeby z wybranym dostawcą programów serwisantem.

 

 

Link to postu

Witam Panie Danielu,

Zestawienie tworze w programie Subiekt w zakładce Zestawienia - SQL. ZK 2/P/2023 zostało zrealizowane jako FS.

Podejrzałem sobie rekordy za pomocą SQL Managment i niestety rekord z zamówieniem ZK, które zostało zrealizowane ma puste pole dok_DoDokId - wartość NULL, natomiast rekord z fakturą posiada wpisane id zamówienia, z którym jest powiązany. Jestem zdziwiony, bo myślałem, że będzie to proste do wyciągnięcia. Rekord nr 16 zawiera zrealizowane zamówienie. Potwierdza to rekord 19, który jest powiązany z 16 (kolumna obok opisu zamówienia Testowe zamówienie 2 - zdjęcie poniżej

 

SQL.PNG.9a4b6492ce2ae45f24c7312464369178.PNG

Pozdrawiam

Link to postu
9 minut temu, Marcin Sentyrz napisał:

Zestawienie tworze w programie Subiekt w zakładce Zestawienia - SQL. ZK 2/P/2023 zostało zrealizowane jako FS.

Podejrzałem sobie rekordy za pomocą SQL Managment i niestety rekord z zamówieniem ZK, które zostało zrealizowane ma puste pole dok_DoDokId - wartość NULL, natomiast rekord z fakturą posiada wpisane id zamówienia, z którym jest powiązany.

9 minut temu, Marcin Sentyrz napisał:

Rekord nr 16 zawiera zrealizowane zamówienie. Potwierdza to rekord 19, który jest powiązany z 16 (kolumna obok opisu zamówienia Testowe zamówienie 2 - zdjęcie poniżej

Zgadza się.

 

9 minut temu, Marcin Sentyrz napisał:

Jestem zdziwiony, bo myślałem, że będzie to proste do wyciągnięcia.

Nie wyjaśnił Pan z czego wynika zdziwienie i co sprawia trudność, ogólnie to prosta relacja i pobranie danych. Nie mniej jak często powtarzam trudność danego zadania jest relatywna, jedna osoba sobie nie radzi, dla kogoś innego to tak zwany "pikuś" / codzienność / jego praca. Stąd moja sugestia:

2 godziny temu, Daniel Kozłowski napisał:

Warto też konsultować takie potrzeby z wybranym dostawcą programów serwisantem.

 

Link to postu
47 minut temu, Marcin Sentyrz napisał:

niestety rekord z zamówieniem ZK, które zostało zrealizowane ma puste pole dok_DoDokId - wartość NULL, natomiast rekord z fakturą posiada wpisane id zamówienia, z którym jest powiązany. Jestem zdziwiony, bo myślałem, że będzie to proste do wyciągnięcia.

Ale to jest dokładnie tak samo proste do wyciągnięcia jak w przypadku odwrotnym.

Tu jeden JOIN i tam jeden JOIN, operujący na tych samych kolumnach (można zmienić LEFT JOIN na INNER JOIN w razie potrzeby).

SELECT
    [ZK Id] = ZK.dok_Id, [ZK Nr] = ZK.dok_NrPelny, [FS Id] = FS.dok_Id, [FS Nr] = FS.dok_NrPelny
FROM
    dok__Dokument ZK
    LEFT JOIN dok__Dokument FS ON ZK.dok_Id = FS.dok_DoDokId AND FS.dok_Typ = 2
WHERE
    ZK.dok_Typ = 16

 

Edytowane przez Andrzej Kubik
Link to postu
×
×
  • Dodaj nową pozycję...