Я тут подивився різні відповіді та зробив кілька експериментів.
Зокрема, я використовую MariaDB 10.1.
Для "простої" речі ви можете зробити те, що запропонував Роберт Д у своєму коментарі:
SELECT Price_Per_SqFt, (Price_Per_SqFt/2) AS col1, (SELECT col1 + 1) AS col2 FROM Items
Якщо ви використовуєте якусь сукупну функцію з внутрішнім об’єднанням, ви не можете використовувати це, але ви можете комбінувати цей підхід із внутрішнім підходом наступним чином (NB ПДВ = "податок з продажу" ... і NB у валюті фінансових даних поля зазвичай мають 4 знаки після коми, я думаю, це історично ...)
SELECT
invoices.invoiceNo, invoices.clientID, invoices.Date, invoices.Paid,
invoicesWithSubtotal.Subtotal,
ROUND( CAST( Subtotal * invoices.VATRate AS DECIMAL( 10, 4 )), 2 ) AS VAT,
(SELECT VAT + Subtotal) AS Total
FROM invoices
INNER JOIN
( SELECT Sum( invoiceitems.Charge ) AS Subtotal, invoices.InvoiceNo FROM invoices
INNER JOIN invoiceitems ON invoices.InvoiceNo = invoiceitems.InvoiceNo
GROUP BY invoices.InvoiceNo ) invoicesWithSubtotal
ON invoices.InvoiceNo = invoicesWithSubtotal.InvoiceNo
Я хотів використати вищезазначене для створення View
рахунків-фактур з їх проміжними підсумками, ПДВ та підсумками ... виявилося, що MariaDB (і майже напевно MySQL) не дозволяють вкладатись у FROM
пункт. Однак це легко вирішити, зробивши перший, View
який перелічує InvoiceNo
і Subtotal
, а потім робить другий, View
який посилається на перший. З точки зору продуктивності я взагалі не маю уявлення про подібне подвійне View
розташування.