我在这里查看了各种答案,并做了一些实验。
具体来说,我正在使用MariaDB 10.1。
对于“简单”的事情,您可以执行罗伯特·D(Robert D)在其评论中建议的操作:
SELECT Price_Per_SqFt, (Price_Per_SqFt/2) AS col1, (SELECT col1 + 1) AS col2 FROM Items
如果您将某种聚合函数与内部联接一起使用,则不能使用此方法,但是可以将此方法与内部联接方法结合使用,如下所示(NB VAT =“营业税” ...和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
and Subtotal
,然后使第二个View
引用第一个,可以轻松解决此问题。在性能方面,我完全不知道这种双重View
安排。