From f5d1da0aa0b069815f4e268d0450e2de7bf3328b Mon Sep 17 00:00:00 2001 From: FlyInTheBox Date: Mon, 6 Nov 2023 14:32:58 +0100 Subject: [PATCH] a --- ProjektowanieBazDanych/_KL5D2.txt | 320 ++++++++++++++++++ ProjektowanieBazDanych/insertsql/buffer.php | 40 +-- .../insertsql/pracownik1.php | 27 +- 3 files changed, 361 insertions(+), 26 deletions(-) create mode 100644 ProjektowanieBazDanych/_KL5D2.txt diff --git a/ProjektowanieBazDanych/_KL5D2.txt b/ProjektowanieBazDanych/_KL5D2.txt new file mode 100644 index 0000000..33fdd6c --- /dev/null +++ b/ProjektowanieBazDanych/_KL5D2.txt @@ -0,0 +1,320 @@ +SELECT ord.id AS 'ID', + customer.name AS 'KLIENT', + ord.date_ordered AS 'DATA', + emp.last_name AS 'SPRZEDAWCA', + ord.total AS 'WARTOŚĆ' + FROM ord, customer, emp + WHERE customer_id = ord.customer_id + AND emp.id = ord.sales_rep_id + AND (ord.total < 100 OR ord.total >= 1000); + +SELECT ord.id AS 'ID', + customer.name AS 'KLIENT', + ord.date_ordered AS 'DATA', + emp.last_name AS 'SPRZEDAWCA', + ord.total AS 'WARTOŚĆ' + FROM ord INNER JOIN customer ON customer.id = ord.customer_id + INNER JOIN emp ON emp.id = ord.sales_rep_id + WHERE (ord.total < 100 OR ord.total >= 1000); + + +SELECT ord.id AS 'ID', + customer.name AS 'KLIENT', + ord.date_ordered AS 'DATA', + emp.last_name AS 'SPRZEDAWCA', + ord.total AS 'WARTOŚĆ', + item.item_id AS 'LP', + product.name AS 'PRODUKT', + item.quantity AS 'ILOŚĆ', + item.price AS 'CENA' + FROM ord INNER JOIN customer ON customer.id = ord.customer_id + INNER JOIN emp ON emp.id = ord.sales_rep_id + INNER JOIN item ON item.ord_id = ord.id + INNER JOIN product ON product.id = item.product_id + WHERE (ord.total < 100 OR ord.total >= 1000); + + + +SELECT ord.id, + customer.name, + DATE_FORMAT(ord.date_ordered,'%Y-%m-%d, %W') AS 'data', + emp.last_name, + ord.total , + item.item_id , + product.name AS 'prod', + item.quantity, + item.price + FROM ord INNER JOIN customer ON customer.id = ord.customer_id + INNER JOIN emp ON emp.id = ord.sales_rep_id + INNER JOIN item ON item.ord_id = ord.id + INNER JOIN product ON product.id = item.product_id + WHERE (ord.total < 100 OR ord.total >= 1000); + + +SELECT osoby.id, + osoby.nazwisko, + osoby.imie, + adresy.ulica, + adresy.miasto, + adresy.kod_pocz + FROM osoby LEFT OUTER JOIN adresy ON osoby.id = adresy.osoby_id; + +SELECT ord.id, + customer.name, + DATE_FORMAT(ord.date_ordered,'%Y-%m-%d, %W') AS 'data', + CONCAT(emp.last_name, ' ', emp.first_name) AS 'sprzed', + ord.total , + IFNULL(item.item_id, 'B.D.') AS 'id', + IFNULL(product.name, 'Brak danych') AS 'prod', + IFNULL(item.quantity, '-----') AS 'ilosc', + IFNULL(item.price, '-----') AS 'cena' + FROM ord INNER JOIN customer ON customer.id = ord.customer_id + INNER JOIN emp ON emp.id = ord.sales_rep_id + LEFT OUTER JOIN item ON item.ord_id = ord.id + LEFT OUTER JOIN product ON product.id = item.product_id; + + + +ZROBIĆ WIELE DO WIELU !!!! + + +SELECT osoby.id, + osoby.nazwisko, + osoby.imie, + adresy.ulica, + adresy.miasto, + adresy.kod_pocz + FROM osoby LEFT OUTER JOIN adresy ON osoby.id = adresy.osoby_id; + +SELECT osoby.id, + osoby.nazwisko, + osoby.imie, + adresy.ulica, + adresy.miasto, + adresy.kod_pocz + FROM osoby RIGHT OUTER JOIN adresy ON osoby.id = adresy.osoby_id; + + + +SELECT prac.id AS 'ID', + prac.last_name AS 'Nazwisko', + prac.first_name AS 'Imię', + prac.title AS 'Stanowisko', + prac.manager_id AS 'Szef', + szef.last_name AS 'N.SZEFA', + szef.title AS 'St.Szefa' + FROM emp AS szef, emp AS prac + WHERE szef.id = prac.manager_id; + +SELECT prac.id AS 'ID', + prac.last_name AS 'Nazwisko', + prac.first_name AS 'Imię', + prac.title AS 'Stanowisko', + prac.manager_id AS 'Szef', + szef.last_name AS 'N.SZEFA', + szef.title AS 'St.Szefa' + FROM emp AS szef INNER JOIN emp AS prac ON szef.id = prac.manager_id; + + +SELECT prac.id AS 'ID', + prac.last_name AS 'Nazwisko', + prac.first_name AS 'Imię', + prac.title AS 'Stanowisko', + prac.manager_id AS 'Szef', + szef.last_name AS 'N.SZEFA', + szef.title AS 'St.Szefa' + FROM emp AS prac LEFT OUTER JOIN emp AS szef ON szef.id = prac.manager_id; + + +SELECT ord.id, + customer.name, + DATE_FORMAT(ord.date_ordered,'%Y-%m-%d, %W') AS 'data', + CONCAT(prac.last_name, ' ', prac.first_name) AS 'sprzed', + CONCAT(szef.last_name, ' ', szef.first_name) AS 'szef', + ord.total, + IFNULL(item.item_id, 'B.D.') AS 'id', + IFNULL(product.name, 'Brak danych') AS 'prod', + IFNULL(item.quantity, '-----') AS 'ilosc', + IFNULL(item.price, '-----') AS 'cena' + FROM ord INNER JOIN customer ON customer.id = ord.customer_id + INNER JOIN emp AS prac ON prac.id = ord.sales_rep_id + INNER JOIN emp AS szef ON szef.id = prac.manager_id + LEFT OUTER JOIN item ON item.ord_id = ord.id + LEFT OUTER JOIN product ON product.id = item.product_id; + + + +SELECT emp.id, + emp.last_name, + emp.first_name, + emp.title, + emp.salary, + job.name, + job.salary_min, + job.salary_max + FROM emp, job + WHERE emp.title = job.name + AND(emp.salary >= job.salary_min AND emp.salary <= job.salary_max) + + + +SELECT emp.id, + emp.last_name, + emp.first_name, + emp.title, + emp.salary, + job.name, + job.salary_min, + job.salary_max + FROM emp, job + WHERE emp.title = job.name + AND (emp.salary < job.salary_min OR emp.salary > job.salary_max) + + +SELECT emp.id, + emp.last_name, + emp.first_name, + emp.title, + emp.salary, + job.name, + job.salary_min, + job.salary_max + FROM emp, job + WHERE emp.salary >= job.salary_min AND emp.salary <= job.salary_max + + +SELECT osoby.id, + osoby.nazwisko, + osoby.imie, + osoby.pesel, + adresy.ulica, + adresy.kod_pocz, + adresy.miasto + FROM osoby INNER JOIN oso_adr ON osoby.id = oso_adr.osoby_id + INNER JOIN adresy ON adresy.id = oso_adr.adresy_id; + + + +SELECT emp.last_name, <-błąd sensu + MAX(salary), + MIN(salary), + AVG(salary), + SUM(salary), + COUNT(salary) +FROM emp; + + +SELECT emp.last_name, <-błąd sensu + MAX(salary), + MIN(salary), + AVG(salary), + SUM(salary), + COUNT(salary) +FROM emp; + +SELECT emp.title, + MAX(salary), + MIN(salary), + AVG(salary), + SUM(salary), + COUNT(*) +FROM emp +GROUP BY emp.title; + + SELECT ord.id AS "ID ZLECENIA", + customer.name AS "Klient", + emp.first_name AS "Sprzedawca", + emp.last_name AS "", + date_format(ord.date_ordered,'%W, %Y-%m-%d') AS "DATA", + SUM(item.price * item.quantity) AS "SUMA ZAMÓWIENIA", + COUNT(*) AS "LICZBA POZYCJI" + FROM ord, item, customer, emp + WHERE item.ord_id = ord.id + AND customer.id = ord.customer_id + AND emp.id = ord.sales_rep_id +GROUP BY item.ord_id; + + + +SELECT emp.title, + emp.first_name, + emp.last_name, + emp.salary + FROM emp + WHERE emp.salary > (SELECT AVG(emp.salary) + FROM emp); + +SELECT emp.title, + emp.first_name, + emp.last_name, + emp.salary + FROM emp + WHERE (emp.title, emp.salary) = (SELECT 'Warehouse Manager', MIN(emp.salary) + FROM emp + WHERE emp.title = 'Warehouse Manager'); + + +SELECT emp.first_name, + emp.last_name, + emp.salary + FROM emp + WHERE salary < (SELECT AVG(emp.salary) FROM emp) + AND emp.dept_id IN (SELECT dept.id FROM dept WHERE dept.name = 'Sales'); + + + +SELECT emp.first_name, emp.last_name + FROM emp + WHERE dept_id IN (SELECT dept.id + FROM dept + WHERE dept.region_id IN ( SELECT region.id + FROM region + WHERE region.name = 'Europe' + ) + ); + +TO SAMO MOŻNA UZYSKAĆ ZA POMOCĄ ZŁĄCZENIA +SELECT emp.first_name, + emp.last_name + FROM emp, dept, region +WHERE emp.dept_id = dept.id + AND dept.region_id = region.id + AND region.name = 'Europe'; + + +SELECT title, SUM(salary) +FROM emp +GROUP BY title +HAVING SUM(salary) > 2000; + +SELECT zlec.id AS 'ID', + zlec.customer_name AS 'Klient', + CONCAT(zlec.first_name, ' ', + zlec.last_name) AS 'Sprzedawca', + zlec.manager AS 'Manager', + zlec.date_ordered AS 'Data zlecenia', + zlec.prod_name AS 'Produkt', + zlec.price AS 'Cena', + zlec.quantity AS 'Ilość', + zlec.price * zlec.quantity AS 'Wartość' +FROM (SELECT ord.id, + customer.name AS customer_name, + emp.last_name, + emp.first_name, + man.first_name AS manager, + ord.date_ordered, + item.price, + item.quantity, + product.name AS prod_name + FROM ord INNER JOIN customer ON customer.id = ord.customer_id + INNER JOIN emp ON emp.id = ord.sales_rep_id + INNER JOIN emp AS man ON man.id = emp.manager_id + LEFT OUTER JOIN item ON item.ord_id = ord.id + LEFT OUTER JOIN product ON product.id = item.product_id + ) AS zlec; + + + + + + diff --git a/ProjektowanieBazDanych/insertsql/buffer.php b/ProjektowanieBazDanych/insertsql/buffer.php index 04ab1df..174c566 100644 --- a/ProjektowanieBazDanych/insertsql/buffer.php +++ b/ProjektowanieBazDanych/insertsql/buffer.php @@ -1,24 +1,16 @@ - -' . $w_mgr['id'] . ", " . $w_mgr['last_name']; -} - -if ($ok_mgr == 0) { -echo 'Nie ma menadżera "' . $mid . '", wybierz jeden z poniższych: '; -echo '
' . substr($mgrs, 6); -} - -?> \ No newline at end of file + \ No newline at end of file diff --git a/ProjektowanieBazDanych/insertsql/pracownik1.php b/ProjektowanieBazDanych/insertsql/pracownik1.php index e859a6f..db8ae52 100644 --- a/ProjektowanieBazDanych/insertsql/pracownik1.php +++ b/ProjektowanieBazDanych/insertsql/pracownik1.php @@ -30,7 +30,14 @@ mysqli_close($id_conn); exit; } - + $sql_dept = "SELECT dept.id, dept.name, region.name AS region FROM dept JOIN region ON dept.region_id = region.id;"; + $wyn_dept = mysqli_query($id_conn, $sql_dept); + if (mysqli_errno($id_conn)) + { + echo "Błąd w zapytania o departament: " . $baza . ' (' . mysqli_error($id_conn) . ')'; + mysqli_close($id_conn); + exit; + } ?> @@ -59,7 +66,23 @@ ?> - Departament: + Departament: + Zarobki: Data: ID managera: