Nie jestem pewien, czy można wykonać następujące czynności za pomocą zwykłej instrukcji select, ale mam dwie tabele (obcięte z danymi niezbędnymi do problemu).Skomplikowane zapytanie
Inventory Item
- id int (pierwotny)
- ilość int
Zdjęcie - Zawiera zmiany w magazynie z zapasu (historia Zdjęcie)
- ID Int (pierwotne)
- inventory_item_id Int (KLUCZ obcego)
- ilość Int
- utworzony DateTime
ilość w stada zmiana w magazynie, whil e ilość w pozycji zapasów jest obecna ilość danego elementu
wszystko w running
kolumna return 0
SELECT
inventory_item.id,
(inventory_item.quantity - SUM(stock.quantity)) AS running
FROM
stock
JOIN
inventory_item ON stock.inventory_item_id = inventory_item.id
GROUP BY inventory_item.id
Pytanie
Teraz, co chciałbym wiedzieć : Czy możliwe jest wybranie wszystkich dat w tabeli stanów magazynowych, w których bieżąca ilość inwentarza stanie się zero przy użyciu SELECT?
Wiem, że można to zrobić programowo, wybierając po prostu wszystkie dane o stanie magazynowym w jednym elemencie i odejmując ilość zapasów indywidualnie od ilości w bieżącym stanie zapasów, która otrzyma ilość przed zmianą stanu zapasów. Czy mogę to zrobić za pomocą SELECT?
Czy kiedykolwiek znajdzie się więcej niż jeden rekord dla danej kombinacji inventory_item_id i utworzony? –