Титла: MySql въпрос
Публикувано от: chonny в Sep 28, 2004, 12:51
Създавам четири таблици от който искам да извлека сумата от колоните им . Проблема е че в зависимост от редовете в тях се полуват различни суми. ако bbt.1(в долния пример) е повече от един ред става каша Примерен код | DROP TABLE IF EXISTS bbtall; DROP TABLE IF EXISTS botall; DROP TABLE IF EXISTS bcitall; DROP TABLE IF EXISTS bcotall;
CREATE TEMPORARY TABLE IF NOT EXISTS bbtall SELECT SUM(B) AS broi, SUM(((Dj * S)*B)/10000) AS KV, MID(`1`, 3) AS shift FROM `bbt` WHERE bbt.D >= '2004-09-01 00:00:00' AND bbt.D <= '2004-09-01 00:00:00' GROUP BY bbt.1;
CREATE TEMPORARY TABLE IF NOT EXISTS botall SELECT SUM(B) AS broi, SUM(((Dj * S)*B)/10000) AS KV, MID(`1`, 3) AS shift FROM `bot` WHERE bot.D >= '2004-09-01 00:00:00' AND bot.D <= '2004-09-01 00:00:00' GROUP BY bot.1;
CREATE TEMPORARY TABLE IF NOT EXISTS bcitall SELECT SUM(B) AS broi, SUM(((Dj * S)*B)/10000) AS KV, SUM(((TD * Dj * S)*B)/1000000) CUB, MID(`1`, 3) AS shift FROM `bcot` WHERE bcot.D >= '2004-09-01 00:00:00' AND bcot.D <= '2004-09-01 00:00:00' GROUP BY bcot.1;
CREATE TEMPORARY TABLE IF NOT EXISTS bcotall SELECT SUM(B) AS broi, SUM(((Dj * S)*B)/10000) AS KV,SUM(((TD * Dj * S)*B)/1000000) CUB, MID(`1`, 3) AS shift FROM `bcit` WHERE bcit.D >= '2004-09-01 00:00:00' AND bcit.D <= '2004-09-01 00:00:00' GROUP BY bcit.1;
SELECT SUM(bbtall.broi) AS bbtbroi, SUM(botall.broi) AS botbroi, SUM(bbtall.KV) AS bbtkv,SUM(botall.KV) AS botkv, SUM(bcotall.broi) AS bcotbroi,SUM(bcitall.broi) AS bcitbroi, SUM(bcotall.KV) AS bcotkv,SUM(bcitall.KV) AS bcitkv, CONCAT(ROUND(((SUM(botall.KV))/(SUM(bbtall.KV))*100),2),'%') AS barsrand, CONCAT(ROUND(((((SUM(bcitall.KV))/(SUM(bcotall.KV)/4))*100)),2), '%') AS ceprand
from `bbtall`,`botall`,`bcitall`,`bcotall`; |
Ако някой може да помогне ще съм му много благодарен 
|