Tôi đang cố gắng trừ 2 bí danh để tạo một bí danh khác nhưng đang nhận được lỗi "cột không xác định".Tạo bí danh sử dụng kết quả toán học của 2 bí danh khác
Đây là SQL của tôi:
select o.id, o.name,
(select sum(l.source_expense)
from `assignments` as a
left join `leads` as l on (l.id = a.lead_id)
where a.{$this->sql_column}=o.id
and l.date_created between {$this->date_from} and {$this->date_to}
and find_in_set(l.vertical_id, '".implode(',', $this->app_user->verticals)."')
) as `expense`,
(select sum(a.buyer_revenue)
from `assignments` as a
left join `leads` as l on (l.id = a.lead_id)
where a.refunded=0
and a.{$this->sql_column}=o.id
and l.date_created between {$this->date_from} and {$this->date_to}
and find_in_set(l.vertical_id, '".implode(',', $this->app_user->verticals)."')
) as `revenue`,
`revenue` - `expense` as `profit`
from {$this->sql_table} as o
Về cơ bản, tôi muốn tạo một bí danh profit
bằng cách trừ revenue
từ expense
. Lý do là tôi đang sử dụng datatables và muốn cột được sắp xếp. Tôi đã biết tôi có thể dễ dàng làm điều này với PHP.
Tôi làm cách nào để thực hiện việc này?
Chỉnh sửa - Tôi đã thử các câu trả lời bên dưới và nhận được lỗi "Mỗi bảng có nguồn gốc phải có bí danh" từ PHPStorm và lỗi cú pháp khi cố gắng chạy truy vấn.
Heres truy vấn mới:
select t.id, t.name, t.expense, t.revenue, t.revenue - t.expense as profit
from(select o.id, o.name,
(select sum(l.source_expense)
from `assignments` as a
left join `leads` as l on (l.id = a.lead_id)
where a.{$this->sql_column}=o.id
and l.date_created between {$this->date_from} and {$this->date_to}
and find_in_set(l.vertical_id, '".implode(',', $this->app_user->verticals)."')
) as `expense`,
(select sum(a.buyer_revenue)
from `assignments` as a
left join `leads` as l on (l.id = a.lead_id)
where a.refunded=0
and a.{$this->sql_column}=o.id
and l.date_created between {$this->date_from} and {$this->date_to}
and find_in_set(l.vertical_id, '".implode(',', $this->app_user->verticals)."')
) as `revenue`
from {$this->sql_table} as o
) as t
Giống như câu trả lời khác, nhận được lỗi - "mỗi bảng dẫn xuất phải có bí danh" – kjdion84
@ kjdion84 Đăng truy vấn đầy đủ của bạn, tôi sẽ cho bạn biết những gì bạn đã làm sai. – sagi
@ kjdion84 Bạn đang chọn 'O. 'trong truy vấn bên ngoài thay vì' T.Column> ', (id và tên), sửa lỗi đó và thử lại –
sagi