tôi đã có một cái nhìn tại câu trả lời khác nhau ở đây và đã làm một vài thí nghiệm.
Cụ thể là tôi đang sử dụng MariaDB 10.1.
Đối với một điều "đơn giản" bạn có thể làm những gì Robert D đề xuất trong bình luận của ông:
SELECT Price_Per_SqFt, (Price_Per_SqFt/2) AS col1, (SELECT col1 + 1) AS col2 FROM Items
Nếu bạn đang sử dụng một số loại chức năng tổng hợp với một bên tham gia bạn không thể sử dụng điều này, nhưng bạn có thể kết hợp phương pháp này với các bên tham gia phương pháp như sau (NB "thuế bán hàng" VAT = ... và NB trong lĩnh vực dữ liệu tài chính tiền tệ thường có 4 chữ số thập phân, tôi nghĩ rằng đó là di tích lịch sử ...)
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
Tôi muốn sử dụng ở trên để tạo một View
để liệt kê hóa đơn wi th subtotals của họ, thuế GTGT và tổng số ... nó bật ra rằng MariaDB (và gần như chắc chắn MySQL) không cho phép làm tổ trong mệnh đề FROM
. Tuy nhiên, điều này có thể dễ dàng được giải quyết bằng cách thực hiện một số View
đầu tiên liệt kê các số InvoiceNo
và Subtotal
và sau đó thực hiện lần đầu tiên View
tham chiếu đầu tiên. Hiệu suất-khôn ngoan Tôi không có ý tưởng ở tất cả về loại này sắp xếp đôi-View
.
Nguồn
2017-10-26 17:50:05
@OMG Ponies Mind elaborating? "@total_sale: =" là không đủ khai báo? – rzetterberg
Đó là thiết lập biến, không khai báo nó. Khai báo có nghĩa là sử dụng câu lệnh 'SET' hoặc dạng xem bảng/nội tuyến có nguồn gốc. –
"Bạn cũng có thể gán giá trị cho biến người dùng trong các câu lệnh khác ngoài SET. Trong trường hợp này, toán tử gán phải là: = và không = bởi vì toán tử sau được coi là toán tử so sánh = trong câu lệnh không SET:" – rzetterberg