Задавайте вопросы, мы ответим
Вы не зашли.
Подскажите как прописать select запрос -
Вывести из таблицы LLL сумму по полю NS в переменную M1 если mes = 1 и
вывести из таблицы LLL сумму по полю NS в переменную M2 если mes = 2 и т.д.
Спасибо
Отредактированно ladysvet-lana (01.02.2012 13:43:10)
Неактивен
Пример таблицы на 5 строк и желаемый результат, а то не ясно о чем идет речь.
Неактивен
Например :
Есть таблица LLL
MES (месяц) NS (сумма)
-----------------------------
1 15
2 30
3 45
а нужно создать :
M1 M2 M3
15 30 45
Неактивен
select (select ns where mes = 1) as M1, (select ns where mes = 2) as M2, (select ns where mes = 3) as M3 from LLL;
Только зачем это нужно? Тоже только в профиль.
Неактивен
Простите дуру - Выдает - синтаксис эррор после Where..что это может быть?
А нужно перекачать инфу из одной структуры в другую
Неактивен
from LLL не там
select (select ns from LLL where mes = 1) as M1, (select ns from LLL where mes = 2) as M2, (select ns from LLL where mes = 3) as M3
Неактивен
теперь синтаксис эррор в конце строки
Неактивен
Нужна еще общая сумма как-то так :
select (select sum(ns) from LLL where mes = 1) as M1,
(select sum(ns) from LLL where mes = 2) as M2,
(select sum(ns) from LLL where mes = 3) as M3
group by ????
Неактивен
select @m1:=(select sum(ns) from LLL where mes = 1) as M1,
@m2:=(select sum(ns) from LLL where mes = 2) as M2,
@m3:=(select sum(ns) from LLL where mes = 3) as M3,
@m1+@m2+@m3 as `общая сумма за 3 месяца`;
Неактивен
Не получилось ,но все равно спасибо общая идея понятна
Неактивен
Что именно не получилось? Если у вас версия <5 (не поддерживающая пользовательские переменные), то
select
(select sum(ns) from LLL where mes = 1) as M1,
(select sum(ns) from LLL where mes = 2) as M2,
(select sum(ns) from LLL where mes = 3) as M3,
(select sum(ns) from LLL where mes in(1,2,3)) as `сумма за три месяца`;
Неактивен
А вот еще мне нужно чуть усложнить)))...
Есть таблица LLL
MES NS TIN
месяц сумма код
-------------------------------
1 10,00 123
1 10,00 123
2 30,00 654
2 30,00 456
3 45,00 987
3 45,00 789
Делаю запрос и как бы все как нужно ))):
select distinct tin,
(select sum(ns) from LLL where mes = 1) as M1,
(select sum(ns) from LLL where mes = 2) as M2,
(select sum(ns) from LLL where mes = 3) as M3
from LLL
Получаю :
TIN M1 M2 M3
------------------------------------
123 20,00 60,00 90,00
456 20,00 60,00 90,00
789 20,00 60,00 90,00
654 20,00 60,00 90,00
987 20,00 60,00 90,00
А нужно ))) :
TIN M1 M2 M3
------------------------------------
123 20,00 0 0
456 0 30.00 0
789 0 0 45.00
654 0 30.00 0
987 0 0 45.00
Неактивен
Неактивен
Осталось еще немного..)))
Получилось так -
TIN M1 M2 M3
-------------------------------------------------
123 20 0 0,00
456 0 60 0,00
789 0 0 90,00
654 0 60 0,00
987 0 0 90,00
т.е задвоились суммы 60 и 90 - должно быть
TIN M1 M2 M3
-------------------------------------------------
123 20 0 0,00 - тут на одинаковый код суммировалось правильно
456 0 30 0,00
789 0 0 45,00
654 0 30 0,00
987 0 0 45,00
Неактивен
Осталось еще немного..)))
Получилось так -
TIN M1 M2 M3
-------------------------------------------------
123 20 0 0,00
456 0 60 0,00
789 0 0 90,00
654 0 60 0,00
987 0 0 90,00
т.е задвоились суммы 60 и 90 - должно быть
TIN M1 M2 M3
-------------------------------------------------
123 20 0 0,00 - тут на одинаковый код суммировалось правильно
456 0 30 0,00
789 0 0 45,00
654 0 30 0,00
987 0 0 45,00
Неактивен
if(l.mes=1,(select sum(ns) from LLL where mes = 1 and LLL.tin=l.tin),0) as M1, -- добавляете это условие ко всем подзапросам
Неактивен
LLL.tin=l.tin - тут наверно что-то не так?
Неактивен
Задолбала я вас...спасибо что столько времени мне уделяете
select distinct tin,
if(l.mes=1,(select sum(ns) from LLL where mes = 1 and LLL.tin=l.tin),0) as M1,
if(l.mes=2,(select sum(ns) from LLL where mes = 2 and LLL.tin=l.tin),0) as M2,
if(l.mes=3,(select sum(ns) from LLL where mes = 3 and LLL.tin=l.tin),0) as M3
from LLL l
Сообщение - dataset L doesn't exist
Неактивен
ladysvet-lana написал:
Сообщение - dataset L doesn't exist
Сообщение от кого? Вы хоть скрин прикладывайте, а лучше вот так:
Неактивен
(((((((((((
Неактивен
mysql> select distinct tin,
-> if(l.mes=1,(select sum(ns) from test where mes = 1 and test.tin=l.tin),0)
as M1,
-> if(l.mes=2,(select sum(ns) from test where mes = 2 and test.tin=l.tin),0)
as M2,
-> if(l.mes=3,(select sum(ns) from test where mes = 3 and test.tin=l.tin),0)
as M3
-> from test l;
X DataSet L doesn't exist .
Неактивен
" X DataSet L doesn't exist ." Кто пишет? Приложите скрин.
Неактивен