Jak polaczyc wiele wierszy z jednym wierszem?

0

Witam,

Mam table tj orders, order_items oraz tabele costs. Generalnie wiekszosc zamowien bedzie posiadalo 1 albo kilka produktow. tabela costs to jedynie 1 element na cale zamowienie. Jak daje LEFT JOIN to uzyskuje cos takiego:

Order ID Item ID Costs
1111 2222 10
1111 2222 10
1111 2222 10

Jednakze chce uzyskac cos takiego:

Order ID Item ID Costs
1111 2222 10
1111 2222 null
1111 2222 null

Na razie bawilem sie z lead(). Tylko cale zapytanie jest umieszczone w VIEW, ktore oblicza mi SUM()e zamowien. Zastanawiam, sie czy moze jest lepsze rozwiazanie na to, ze wzgledu na to, ze jest to zapytanie ktore bedzie wykonywane w perspektywie.

2
SELECT oi.order_id, oi.item_id, c.costs 
FROM (
	SELECT 
		ROW_NUMBER() OVER(PARTITION BY o.order_id ORDER BY i.item_id) x_rownum,
		o.order_id, 
		i.item_id 
	FROM orders o
	JOIN order_items i ON i.order_id = o.order_id
) oi
LEFT JOIN costs c ON c.order_id = oi.order_id and oi.x_rownum=1

1 użytkowników online, w tym zalogowanych: 0, gości: 1