Başka bir ad oluşturmak için 2 diğer adı çıkarmaya çalışıyorum ancak "bilinmeyen sütun" hatası alıyorum.Diğer 2 takma adın matematik sonucunu kullanarak bir takma ad oluşturma
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
Temelde, expense
dan revenue
çıkarılarak bir profit
diğer adı oluşturmak istiyorum:
İşte benim SQL olduğunu. Nedeni veri ambarları kullanıyorum ve sütunun sıralanabilir olmasını istiyorum. Bunu zaten PHP ile kolayca yapabileceğimi biliyorum.
Bunu nasıl yapabilirim?
Düzenleme - Aşağıdaki yanıtları denedim ve "Her bir tablodaki takma ad olmalıdır" hatası PHPStorm'dan ve sorguyu çalıştırmaya çalışırken bir sözdizimi hatası alıyorum.
İşte yeni sorgu: Bir alt sorgu içine Sorgunuzu koymak gerekir
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
Diğer cevaplarla aynı şekilde, hata alıyorum - "her bir tablo diğer ad olmalıdır" – kjdion84
@ kjdion84 Tam sorgunuzu gönderin, size ne yaptığınızı söyleyeyim. – sagi
@ kjdion84 'O seçimini yapıyorsunuz '' T.Column> 'yerine dış sorguda (id ve name), bunu düzeltin ve tekrar deneyin –
sagi