我有一个具有以下架构的sqlite数据库
Models:Table --This table maintain all models name and their current stock
model_id IDENTITY NOT NULL,
model_name VARCHAR (100) NOT NULL,
created_on DATE DEFAULT (date('NOW') ),
have_now INT DEFAULT 0
check_in:Table --This table registers all models that is eneted into store
check_in_id IDENTITY,
on_date DATE,
quantity INT,
model_id INT,
notes VARCHAR (200) DEFAULT [Details not found.]
check_out : Table --This table register all models that goes out of the store
check_out_id IDENTITY,
on_date DATE,
model_id INT,
quantity INT,
notes VARCHAR (200) DEFAULT [Details not found.]
只要有物品外出或进入,have_now都会更新以反映可用的数量。 要更新,我正在使用此查询
update models set have_now =
( select (ins.sumOfIns - outs.sumOfOuts) balance
FROM
( select
model_id,
sum(quantity) sumOfIns
FROM check_in
where model_id = 6
GROUP BY model_id
) ins
LEFT JOIN
(select
model_id,
sum(quantity) sumOfOuts
FROM check_out
where model_id = 6
GROUP BY model_id
) outs
ON ins.model_id = outs.model_id )
where models.model_id = 6
这对于更新singel模型非常有效。 但是我需要一个查询,它将根据其签入更新所有模型 然后退房。 我可以在应用程序中以编程方式实现 通过逐个迭代thorugh model_id并将其提供给 上面的查询中,获取结果并在模型表中进行更新。
但是我敢肯定,仅使用查询也可以实现。 基本上我需要知道如何迭代模型表 获取其当前模型ID并在上面的查询中使用该ID 作为子查询并使用结果更新模型的Have_now字段
任何建议将不胜感激。