SQL Oracle - display values only once per column -
i'm trying format select statement. assignment specifies has formatted way.
i have database regarding taxi service. have put view company name, passenger name, , taxi number. easy. however, output specifies company name should appear once in output, @ top of it's own group. have:
create view taxitrips(companyname, passengername, taxi#) (select company.name, booking.name, vehicles.taxi# booking join vehicles on booking.taxi# = vehicles.taxi# right outer join company on vehicles.name = company.name); the right outer join companies no booking recorded still displayed. if run:
select * taxitrips order companyname asc; it give me like
companyname passengername taxi# --------------------------------------------- abc taxis dave 192 legion cabs premier cabs shane 2154 premier cabs tim 2169 silver service dave 18579 silver service tim 18124 silver service aaron 18917 no result legion cabs, field displayed, et cetera. assignment specification says has this.
companyname passengername taxi# --------------------------------------------- abc taxis dave 192 legion cabs premier cabs shane 2154 tim 2169 silver service dave 18579 tim 18124 aaron 18917 the company name should displayed on first row. distinct not helping. advice?
normally, @ application layer, because result set relies on ordering of rows -- bad thing in sql.
but can as:
select (case when row_number() on (partition c.name order v.taxi#) = 1 c.name end) companyname, b.name, v.taxi# company c left join vehicles v on v.name = c.name left join booking b on b.taxi# = v.flight# order c.name, v.taxi#; note: rearranged joins left joins. people find easier follow right joins.
Comments
Post a Comment