add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Create Table checks(checks VARCHAR(50), art VARCHAR(50), quantity INT);
Insert All Into checks Values('1check','1toy',2)
Into checks Values('1check','1toy',5)
Into checks Values('1check','1toy',1)
Into checks Values('1check','2toy',1)
Into checks Values('1check','4toy',3)
Into checks Values('2check','2toy',1)
Into checks Values('2check','1toy',2)
Select 1 From DUAL;
7 rows affected
Create Table articles(art VARCHAR(50), price DECIMAL(5,2));
Insert All Into articles Values('1toy',2.00)
Into articles Values('2toy',2.50)
Into articles Values('3toy',1.50)
Into articles Values('4toy',6.00)
Into articles Values('1toy',2.50)
Into articles Values('1toy',3.00)
Select 1 From DUAL;
6 rows affected
SELECT T.checks, T.art, SUM(T.quantity * D.price) sump
FROM
checks T JOIN
(
SELECT art, price,
COUNT(*) OVER (PARTITION BY art) cn,
ROW_NUMBER() OVER (PARTITION BY art ORDER BY price) rn
FROM articles
) D
ON T.art = D.art
WHERE (D.cn = 1 OR D.rn = 2) AND T.checks = '1check'
GROUP BY T.checks, T.art
ORDER BY T.checks, T.art
CHECKS ART SUMP
1check 1toy 20
1check 2toy 2.5
1check 4toy 18