Szkic - Kurs SQL z Mozart Produkcja

Wstęp

SQL to podstawowe narzędzie każdego analityka i zaawansowanego Użytkownika komputera. Praktycznie każdy program komputerowy wykorzystywany w przedsiębiorstwie, czy instytucji oparty jest o taką lub inna wersję SQL co czyni z niego jedno z najbardziej przydatnych i pożądanych narzędzi, czy też umiejętności przydatnych w pracy. Owszem zwykli użytkownicy nie posiadający zbyt dużych aspiracji nie muszą korzystać z jego możliwości, ale ci którzy oczekują trochę więcej i nie chcą czekać, aż dział IT zajmie się ich sprawą powinni zainteresować się i poszerzyć swój zasób wiedzy o język zapytań SQL, który jest uniwersalnym narzędziem do pracy z współczesnymi bazami danych.

Założenia

Założeniem jest nauczenie się budowania zapytań:

a) SELECT,

b) WHERE,

c) Normalizacja baz danych,

d) ORDER BY,

e) JOIN,

f) GROUP BY,

g) HAVING.

W oparciu o bazy dwóch popularnych programów:

1. Subiekt GT firmy Insert

2. Mozart Produkcja w wersji dla Subiekt GT.

Rozwiązania firmy Insert to najpopularniejsze i najbardziej rozpowszechnione rozwiązanie dla firm w Polsce. Zawiera modułu od magazynu, handlu, fakturowania po kadry, księgowość i CRM. Mozart to Produkcja dla Subiekt GT (i całej rodziny Insert, czy programu enova firmy Soenta) zapewniające wsparcie procesów produkcyjnych w firmach. Razem pozwalają na stworzenie systemu klasy ERP za rozsądne pieniądze i w sensownym czasie.

Praktyczny przykład

Import listy Pracowników do tabeli dbo.Pracownicy. Sytuacja typowa i praktyczna. Mamy listę Pracowników Produkcyjnych pobranych z programu kadrowego. Chcemy tą listę wprowadzić do naszej bazy. Mamy plik, a dokładnie arkusz kalkulacyjny, który zawiera ponad 50 pozycji:

Nie będziemy tego ręczenie dodawać, jesteśmy na to zbyt leniwi.

Jak to zrobić?

Wpierw musimy odnaleźć naszą tabele, w przypadku Mozarta będzie to tabela dbo.Pracownicy.

Najprostszym sposobem, żeby sprawdzić jak dodać nowych Użytkowników, jakie pola są potrzebne jest skorzystanie z funkcji wbudowanych w Sql Microsoft Management Studio (SSMS). Odnajdujemy tabelę, klikamy prawym przyciskiem myszy i z menu kontekstowego wybieramy Script Table as -> INSERT To -> New Query Editor Window:

W efekcie uzyskamy następujące zapytanie:

USE [Moz20190705SB]

GO

INSERT INTO [dbo].[Pracownicy]

([Aktywny]

,[IdWSystemieMagazynowym]

,[Imie]

,[Kod]

,[KodKreskowy]

,[Nazwisko]

,[Nip]

,[Stanowisko]

,[Wydzial]

,[Haslo]

,[CzasPracyDzienny]

,[CzasPracyMiesieczny]

,[OptimisticLockField]

,[GCRecord])

VALUES

(<Aktywny, bit,>

,<IdWSystemieMagazynowym, int,>

,<Imie, nvarchar(100),>

,<Kod, nvarchar(100),>

,<KodKreskowy, nvarchar(100),>

,<Nazwisko, nvarchar(100),>

,<Nip, nvarchar(100),>

,<Stanowisko, nvarchar(100),>

,<Wydzial, nvarchar(100),>

,<Haslo, nvarchar(100),>

,<CzasPracyDzienny, money,>

,<CzasPracyMiesieczny, money,>

,<OptimisticLockField, int,>

,<GCRecord, int,>)

GO

Widzimy, że nie wszystkie pola nas interesują, dla naszych obecnych potrzeb wystarczą:

[Aktywny],

[Imie],

[Kod],

[KodKreskowy],

[Nazwisko]

Po krótkich przeróbkach polegających na usunięciu niepotrzebnego kodu zostaje:

INSERT INTO [dbo].[Pracownicy] ([Aktywny],[Imie],[Kod],[KodKreskowy],[Nazwisko]) Values ('1','Krzysztof','25','25','Nadolny')

Przy czym powyższe zapytanie dotyczy tylko jednego Pracownika, a co zrobić żeby uzyskać pożądany efekt i z arkusza zrobić całą listę, dla wszystkich pozycji, tak aby uzyskać poniższy efekt?

http://michalmoroz.info 

http://produkcjaprogramy.pl – tu można pobrać program Mozart Produkcja oraz znaleźć dodatkowe informacje na temat programu