|
|
|
|
|
для: LO
(30.01.2006 в 13:48)
| | NULL можно получить лишь для одной из таблиц при помощи левого объединения (JOIN LEFT), для второго уже не получится, но в любом случае с NULL дело иметь не выйдет - любые арифмитические операции с NULL имеют результатом NULL. | |
|
|
|
|
|
|
|
для: cheops
(30.01.2006 в 13:34)
| | Ну тогда встречный вопрос:
Как сделать запрос вычисляя непремено уже разность суммы, пусть по оперделенному u_id и mfo?
SUM(table1.summa) - SUM(table2.summa)
|
будет ли правильно выводиться результат, если для одной из таблиц не будет данных по условию | |
|
|
|
|
|
|
|
для: LO
(30.01.2006 в 11:58)
| | Хм... лучше сразу делайте два запроса - проблем будет значительно меньше... Скорее всего результат всегда будет ошибочным, так как группировать можно будет только по mfo одной из таблиц... | |
|
|
|
|
|
|
| У меня есть две таблицы table1 и table2.
Структура таблицы 'table1'
CREATE TABLE 'table1' (
'i_id' int(10) unsigned NOT NULL auto_increment,
'u_id' int(10) unsigned NOT NULL default '0',
'summa' float(10,2) NOT NULL default '0.00',
'mfo' varchar(5) collate cp1251_ukrainian_ci NOT NULL default '',
PRIMARY KEY ('i_id')
)
|
Структура таблицы 'table2'
CREATE TABLE 'table2' (
'p_id' int(10) unsigned NOT NULL auto_increment,
'u_id' int(10) unsigned NOT NULL default '0',
'summa' float(10,2) NOT NULL default '0.00',
'mfo' varchar(5) collate cp1251_ukrainian_ci NOT NULL default '',
PRIMARY KEY ('p_id')
)
|
Мне нужно получить разность сумм из этих таблиц по определенноу u_id и mfo. Но я бы хотела сделать запрос, в котором сразу отображался результат по всем mfo и необязательно разность сумм, а хотябы просто суммы. Что-то вроде
mfo SUM(table1.summa) SUM(table2.summa)
1 11.11 22.22
2 NULL 33.33
3 44.44 NULL
5 45.23 123.40
|
NULL означает, что нет данных, но хотелось бы чтоб выводилось 0.00
Вобщем, не знаю, как решить данную проблему.
P.S.
Из одной таблицы запрос сделать легко
SELECT p.mfo, SUM(p.summa)
FROM 'table2' as p
where p.u_id='5'
group by p.mfo
|
| |
|
|
|
|