Display total sales per brand
Basically, you're missing a GROUP BY! To answer your question, I did the following:

Created tables (relevant fields only):

CREATE TABLE brand
(
  brand_id INTEGER,
  name VARCHAR(25)
);

CREATE TABLE product 
(
  product_id INTEGER,
  brand_id INTEGER,
  name VARCHAR(30) NOT NULL
);

CREATE TABLE product_sale 
(
  product_sale_id INTEGER,
  product_id INTEGER,
  quantity INTEGER
);


Then I created some sample records:

INSERT INTO brand VALUES (1, 'Ferrari'), (2, 'Lamborghini'), (3, 'Porsche');

INSERT INTO product VALUES (1001, 1, 'TestaRossa'), (1002, 1, 'Dino'), (2001, 2, 'Countach'), (2002, 2, 'Diabolo'), (3001, 3, 'Cayenne'), (3002, 3, '911'), (3003, 3, 'Boxter');

INSERT INTO product_sale VALUES (500001, 2001, 45), (500002, 1001, 12), (500003, 3003, 7), (500004, 3001, 750), (500005, 3001, 400);


and then ran this query:

SELECT 
  b.name AS "Brand name", 
--  p.name as "Product name", 
  SUM(ps.quantity) AS "Quantity"
FROM brand b
JOIN product p
ON b.brand_id = p.brand_id
JOIN product_sale ps
ON p.product_id = ps.product_id
GROUP BY b.name;  -- p.name


I left in the extra p.name fields (commented out with --) so that you can see how the query was constructed. Take out the comments and have a look.

Result:

Brand name  Quantity
Ferrari     12
Lamborghini 45
Porsche     1157


All of this can be found at db-fiddle here. For future reference, it's better to have a Minimum Complete and Verifiable Example (preferably complemented with a fiddle) which a) means that everyone is singing off the same hymnsheet - i.e. your data and b) there's no duplication of effort. You will obtain quicker and better answers with a well-constructed fiddle. You might also like to take a look here, and maybe take the tour and visit the helpdesk.

These sites are a great resource, all the more so if you take the time and effort to follow the guidelines. p.s. welcome to the forum!