Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* zad 1 ZROBIONE*/
- /*
- Podaj liczbe ludnosci dla obszaru lodzkiego, uzyj samozłączenia
- (Ja podalem dla wszystkich obszarow, czyli polska i 3 województwa, ale zaliczyła to)
- */
- USE kraj;
- SELECT * FROM obszar;
- SELECT o.nazwaObszaru, SUM(l.ludnosc) FROM obszar l
- JOIN obszar o ON l.idObszaruNadrzednego = o.idObszaru
- WHERE o.idObszaru = 2
- GROUP BY o.nazwaObszaru;
- /* zad 2 */
- /*
- Utworz transakcje .....
- Ogolnie to wystarczy zrobic tak:
- */
- BEGIN TRANSACTION nazwa
- //operacje
- commit TRANSACTION nazwa
- /* zad 3 ZROBIONE */
- /*
- Utworzyc sekwencje o nazwia nowa_sekwencja o typie smallint, startującej od 15, zwiększanej co 20 do maksymalnej wartosci 1000, startującej od 15 po przekroczeniu wartości. Utwórz tabelę z polami int oraz łańcuchem znakowym. Wprowadź do tabeli rekord przy użyciu sekwencji
- */
- CREATE SEQUENCE nowa_sekwencja AS SMALLINT
- START WITH 15
- INCREMENT BY 20
- maxvalue 1000
- cycle
- CREATE TABLE tab(
- liczba INT,
- znaki VARCHAR(20)
- )
- INSERT INTO tab VALUES( NEXT VALUE FOR nowa_sekwencja, 'kolumna');
- INSERT INTO tab VALUES( NEXT VALUE FOR nowa_sekwencja, 'kolumna 2');
- SELECT * FROM tab;
- /* zad 4 ZROBIONE */
- /*
- Stwórz procedurę, pobierającą idTowaru, która zwraca ilosc transakcji tym produktem. Wykonaj polecenie dla idTowaru = 5
- */
- USE BazaRelacyjna;
- CREATE PROCEDURE liczbaTransakcji
- @idTowaru INT,
- @liczba INT OUTPUT
- AS
- SELECT @liczba = COUNT(idTransakcji) FROM Transakcje
- WHERE idTowaru = @idTowaru;
- GO
- DECLARE @wynik INT;
- EXEC liczbaTransakcji 5, @wynik OUTPUT;
- print @wynik;
- /* zad 5 ZROBIONE*/
- /*
- Stworz funkcje, która pobiera idOsoby i zwraca rok ostatniej wypłaty dlaa tej osoby
- */
- CREATE FUNCTION dbo.pobierzOsobe (@idOsoby INT) RETURNS DATE
- AS
- BEGIN
- RETURN (SELECT MAX(DataWyplaty) FROM Zarobki
- WHERE idOsoby = @idOsoby);
- END
- SELECT YEAR(dbo.pobierzOsobe(3)) AS [Rok Ostatniej Wyplaty]
- GO
- /* zad 6. ZROBIONE*/
- /*
- Stworz funkcje, ktora podaje idOsoby, a zwraca w wyniku Nazwisko, Imie i ilosc faktur danego klienta
- */
- CREATE FUNCTION dbo.zwrocKlienta (@idOsoby INT)
- RETURNS @tab
- TABLE(nazwisko VARCHAR(20), imie VARCHAR(20), liczbaFaktur INT)
- AS
- BEGIN
- INSERT INTO @tab SELECT k.Nazwisko, k.Imie, COUNT(f.IdFaktury) FROM Klienci k
- JOIN Faktury f ON f.IdKlienta = k.IdKlienta
- WHERE f.idOsoby = @idOsoby
- GROUP BY k.Nazwisko, k.Imie;
- RETURN;
- END
- GO
- SELECT * FROM zwrocKlienta(2)
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement