• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak nie sprzedawać produktu, którego nie ma na stanie? SQL Server

Object Storage Arubacloud
+1 głos
213 wizyt
pytanie zadane 2 stycznia 2021 w SQL, bazy danych przez kasialke Nowicjusz (230 p.)
Witam, Mam pytanie, związane z moja bazą danych (SQL SERVER). Jest to sklep, chciałabym stworzyć zapytanie, albo tak skonstruować tabele, aby produkt, którego nie ma na stanie nie był zamawiany, ale nie za bardzo wiem jak by to miało wyglądać. Bardzo proszę o podpowiedź, albo o jakiś przykład.

1 odpowiedź

0 głosów
odpowiedź 2 stycznia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)
wybrane 2 stycznia 2021 przez kasialke
 
Najlepsza
Jakbyś zamieściła tabele bazy danych, byłoby łatwiej. Z pewnością przechowujesz w tabeli stan magazynowy towaru. Jak spadnie do 0, to go nie ma na stanie i nie prezentujesz go w ofercie.
komentarz 2 stycznia 2021 przez kasialke Nowicjusz (230 p.)
Czyli nie da się, tak jakby ominąć towaru z wartością 0 na stanie, aby nie wyświetlało się w zamówieniach? Mam dodać jakąś komendę usuwającą ten towar, gdy na stanie jest 0?
komentarz 2 stycznia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)

Ależ da się. Przykładowo masz tabelę z towarami i jednym z pól jest stan_magazynowy. W ten sposób wyświetlisz dane towarów, które aktualnie masz na stanie:

SELECT * FROM towary WHERE stan_magazynowy>0

 

komentarz 2 stycznia 2021 przez kasialke Nowicjusz (230 p.)

Tylko właśnie jak mam relacje między zamówieniami a produktami a chce wyświetlić zamówienia to mogą mi się pokazać produkty których już nie ma na stanie a zostały zamówione i właśnie tu mam problem :(

Użyłam takiego zapytania:

select * from Zamowienie z inner join Produkt p on z.pk_id_Zamowienie=p.pk_id_Produkt;

Może tu w tym zapytaniu jest problem :( 

komentarz 2 stycznia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)

Dodaj warunek jak wyżej.

select * from Zamowienie z 
inner join Produkt p on z.pk_id_Zamowienie=p.pk_id_Produkt
WHERE p.stan_magazynowy>0

 

komentarz 2 stycznia 2021 przez kasialke Nowicjusz (230 p.)
W zapytaniu działa, ale w bazie nadal jest możliwe, żeby ktoś zamówił produkt, którego nie ma, czyli konieczne będzie usunięcie towaru którego nie ma? Tylko jak to wtedy zrobić? Da się to zrobić jakoś automatycznie?
komentarz 2 stycznia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)
Po złożeniu zamówienia zmieniasz stan magazynowy odejmując liczbę zamówionych produktów od stanu z bazy. Jak stan wynosi 0, nie prezentujesz produktu na liście.
komentarz 2 stycznia 2021 przez kasialke Nowicjusz (230 p.)
To mam zrobić updatem? A później usunąć towar kiedy się wyzeruje? Tylko nie wiem za bardzo, jak go usunąć, if się da? Przepraszam, za tyle pytań, ale dopiero się tego uczę :(
komentarz 2 stycznia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)

Kontroler aplikacji sprawdza, czy liczba zamówionych produktów nie jest większa od dostępnych. Jak wszystko jest OK, kontroler wysyła update do bazy:

UPDATE Produkt SET stan_magazynowy=stan_magazynowy-liczba_zamowionych_egzemplarzy_danego_produktu

Nie usuwasz "wyzerowanego" towaru, bo możesz go znowu przyjąć na stan (sprowadzić nowe sztuki) i nie trzeba wtedy ponownie wprowadzać go do bazy.

komentarz 2 stycznia 2021 przez kasialke Nowicjusz (230 p.)
Bardzo dziękuję, o to mi chodziło :)
komentarz 2 stycznia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)
Proszę, jak będziesz miała pytania, pisz dalej.

Podobne pytania

+1 głos
3 odpowiedzi 613 wizyt
0 głosów
1 odpowiedź 165 wizyt
pytanie zadane 17 września 2016 w C# przez Kieszinho10 Początkujący (280 p.)
0 głosów
0 odpowiedzi 370 wizyt
pytanie zadane 18 stycznia 2020 w Nasze poradniki przez oracledev Użytkownik (620 p.)

92,539 zapytań

141,382 odpowiedzi

319,479 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...