Szkic - Kurs SQL z Mozart Produkcja
11.07.2019 23:41
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://produkcjaprogramy.pl – tu można pobrać program Mozart Produkcja oraz znaleźć dodatkowe informacje na temat programu