Clean up shop database

Поиск
Список
Период
Сортировка
От Richard Klingler
Тема Clean up shop database
Дата
Msg-id 20220119120317479683.54287f97@klingler.net
обсуждение исходный текст
Ответы Re: Clean up shop database  (Rob Sargent <robjsargent@gmail.com>)
Список pgsql-sql
Good morning (o;


I am in the process of migrating an online shop to another system and 
therefore
also want to clean out products that haven't been re-stocked for a time.

Now this simple query returns all order ids younger than 750 days:

select orderid, orderdate from orders
where (now() - orderdate) < INTERVAL '1000 days'
order by orderdate asc

So it shows me orders beginning from January 1st 2020...all fine.


Now I want to list all products which stock is 0 and have only been 
ordered
before those 750 days..so I use the above query in wrap it in the select
with a "not in":

select p.productid as id, p.name_de as name
from product p, orderitems i, orders
where p.productid = i.orderitems2productid
and i.orderitems2orderid not in (select orderid from orders where 
(now() - orderdate) < INTERVAL '750 days')
and p.pieces < 1
and p.active = 't'
group by id
order by id desc


Besides that this query takes over 70 seconds...it also returns 
products that have been ordered after January 1st 2020.

So somehow this "not in" doesn't work as I am expecting it (o;


thanks in advance
richard




В списке pgsql-sql по дате отправления:

Предыдущее
От: Steve Midgley
Дата:
Сообщение: Re: Return product category with hierarchical info
Следующее
От: Rob Sargent
Дата:
Сообщение: Re: Clean up shop database