Solution 1 won't work because of this line
INNER JOIN CUSTOMERS C ON O.CUSTOMER = C.CLIENT_ID
Based on the schema you have shown us that is attempting to match an
[nvarchar] (80)
to an
[int]
and that simply won't work.
Because you haven't given us any foreign keys to go by I can only suggest that it is supposed to be
INNER JOIN CUSTOMERS C ON O.Client_ID = C.Client_ID
At first glance it looks as if your select statement should be something like this
SELECT O.[ID_Orders]
,O.[Insert]
,C.[Name]
,C.[Surname]
,O.[Shipping]
,A.[Article]
,A.[Description]
,O.[Quantity]
,O.[Quantity] * A.[Unit_Cost]
,TP.[Description]
,O.[Quantity] *
,O.[Quantity] * A.[Net_Weight_Kg]
Note the use of the table aliases that tell us which table we have taken the data from. But there is no obvious means of calculating the "Total order volume" - unless they are all rectangular prisms and you want to use
O.[Quantity] * O.[Height_cm] * O.[Length_cm] * O.[Width_cm]
But this is a moot point as you have a fundamental flaw in your design.
Orders can have many order items or "articles" in your design so there should be another table that lists the lines/items/articles per order, that table should link to the Articles table to get the attributes of each article, but it is this Order Item table that should contain the article ID and the Quantity of that article in this order.
As your design currently stands you can only have one Article per Order.
Once you have worked out what your query should be then here are the instructions for creating a view
CREATE VIEW (Transact-SQL) - SQL Server | Microsoft Docs[
^]