Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: chonny в Sep 28, 2004, 12:51



Титла: 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`;


Ако някой може да помогне ще съм му много благодарен ???