Non sono sicuro se quanto segue possa essere fatto usando una semplice istruzione select, ma ho due tabelle (troncate con i dati necessari al problema).Complicated Query
Inventario
- id int (primario)
- quantità int
Archivio - Contiene cambiamenti nel magazzino del articolo di magazzino (storia di magazzino)
- id int (PRIMARIO)
- inventory_item_id int (chiave esterna)
- quantità int
- creato datetime
Il quantità in azione è il cambio di magazzino, whil e la quantità in articolo di magazzino è la quantità corrente di tale elemento
TUTTO NEL running
COLONNA RITORNERÀ 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
LA QUESTIONE
Ora, quello che vorrei sapere è : È possibile selezionare tutte le date nella tabella stock in cui la quantità corrente di inventory_item diventa mai pari a zero utilizzando un SELECT?
So che questo può essere fatto a livello di programmazione semplicemente selezionando tutti i dati di magazzino in un articolo e sottraendo la quantità di magazzino individualmente dalla quantità di articoli di inventario corrente, che otterrà la quantità prima che il cambiamento in magazzino si sia verificato. Posso farlo con un SELECT?
Ci sarà mai più di un record per una data combinazione di inventory_item_id e creato? –