Используя Mysql, мне нужно вычислить сумму значений в данной строке, мои попытки сделать это потерпели неудачу с необычными результатами, одна строка работала, а другие не показывали суммарных данных.Этот вызов относится к предыдущему вызову, на который ответил scaisEdge, с благодарностью.
mysql, как отобразить значения в одной строке для каждого портфеля, акции
Я получаюзначения в выходных данных, но только для одной строки, поэтому он ведет себя не так, как я ожидал.
$rows = $wpdb->get_results("
select
t.Symbol AS Symbol
, t.Portfolio AS Portfolio
, max(Janx) AS Janx
, max(Febx) AS Febx
, max(Marx) AS Marx
... etc.
, max(Decx) AS Decx
, (
max(Janx)
+ max(Febx)
+ max(Decx)
) AS Total
from (
SELECT
s.symbol AS Symbol,
p.code AS Portfolio,
(case when ANY_VALUE(DATE_FORMAT(d.pdate,'%b')) = 'Jan' then
IFNULL(CEILING((SUM(IF(t.transaction_type='Buy',t.quantity,t.quantity
* -1)) * ANY_VALUE(d.dividend) ) / 100),0) end) AS Janx,
(case when ANY_VALUE(DATE_FORMAT(d.pdate,'%b')) = 'Feb' then
IFNULL(CEILING((SUM(IF(t.transaction_type='Buy',t.quantity,t.quantity *
-1)) * ANY_VALUE(d.dividend) ) / 100),0) end) AS Febx,
(case when ANY_VALUE(DATE_FORMAT(d.pdate,'%b')) = 'Mar' then
IFNULL(CEILING((SUM(IF(t.transaction_type='Buy',t.quantity,t.quantity * -1)) * ANY_VALUE(d.dividend) ) / 100),0) end) AS Marx,
... etc
(case when ANY_VALUE(DATE_FORMAT(d.pdate,'%b')) = 'Dec' then
IFNULL(CEILING((SUM(IF(t.transaction_type='Buy',t.quantity,t.quantity * -1)) * ANY_VALUE(d.dividend) ) / 100),0) end) AS Decx
FROM dm_transactions t
INNER JOIN dm_dividends d ON (d.stock_id = t.stock_id)
INNER JOIN dm_stocks s ON (s.id = t.stock_id)
INNER JOIN dm_portfolios p ON (t.portfolio_id = p.id)
WHERE ANY_VALUE(d.pdate) >= CURDATE()
AND
t.user_id >= IF($user_id=4,2,$user_id)
AND
t.user_id <= IF($user_id=4,3,$user_id)
GROUP BY s.symbol,d.pdate
) t
GROUP BY t.Symbol, t.Portfolio
... etc.
foreach ($rows as $row ){
echo "<tr>";
echo "<td>$row->Portfolio</td>";
echo "<td>$row->Symbol</td>";
echo "<td>$row->Janx</td>";
... etc.
echo "<td>$row->Decx</td>";
echo "<td>$row->Total</td>";
Суммарные значения суммируются неправильно, некоторые строки не показывают итоговых значений, когда есть данные, мойSQL-запрос должен быть неверным, я подозреваю.Все остальные аспекты моего отчета работают.
Надеюсь, простая ошибка с моей стороны.
Заранее большое спасибо
Колин