Есть несколько способов сделать это, например,
let a = {foo: "bar" };
console.log("a", a);
fs.writeFileSync("./saved_data.json", JSON.stringify(a));
let b = require("./saved_data.json");
console.log("b", b);
Вы также можете:
let b = JSON.parse(fs.readFileSync("./saved_data.json"));
console.log("b", b);
Теперь вы можете сохранять только данные , а не методы!
Если вы хотите сохранить ] object Я бы использовал глобальную переменную для хранения этого:
let globalObject = null;
someMethod.get((obj) => {
// Save this for later use
globalObject = obj;
})
// Later on
if (globalObject) {
globalObject.doStuff();
}
Попробуйте это
SELECT inv_t.product_id, inventory_total-nvl(sales_total,0)
FROM
(SELECT product_id, sum(quantity) as inventory_total
FROM inventory
GROUP BY product_id) inv_t LEFT OUTER JOIN
(SELECT product_id, count(*) AS sales_total
FROM sales
GROUP BY product_id) sale_t
ON (inv_t.product_id = sale_t.product_id)
Это - лучшее решение, чем несколько из других отправленных, которые не составляют то, что некоторые продукты не могут иметь никаких соответствующих строк в таблице sales. Вы хотите удостовериться, что такие продукты также обнаруживаются в результатах.
NVL является определенной для Oracle функцией, которая возвращает значение первого аргумента, если это не является пустым, в этом случае это возвращает значение второго аргумента. Существуют эквивалентные функции во всех коммерческих системах управления базами данных - можно использовать СЛУЧАЙ в MySQL к тому же эффекту.
Я предлагаю делать "материально-технические ресурсы" и таблицы "продаж" в представления, так, чтобы они были допускающими повторное использование, и заключительный запрос становится очень простым. Очевидно, имена полей и имена таблиц должны будут измениться для соответствия схеме.
--First view: list products and the purchased qty
create or replace view product_purchases as
select
product_id
,sum(purchased_qty) as purchased_qty
from
purchases
group by
product_id;
--Second view: list of products and the amount sold
create or replace view product_sales as
select
product_id
,count(*) as sales_qty
from
sales
group by
product_id;
--after creating those two views, run this query:
select
pp.product_id
,pp.purchased_qty - ps.sales_qty as on_hand_qty
from
product_purchases pp
,product_sales ps
where ps.product_id = pp.product_id;
SELECT product AS prd,
SUM(quantity) -
IFNULL((SELECT COUNT(*)
FROM sells
WHERE product = prd
GROUP BY product), 0)
AS stock
FROM bought
GROUP BY product;
Этот также работает, когда проданное количество 0.