|
MySQL.RU - Webboard
Вернуться
Вычисление результата (Wedlor) 18/01/2007 - 14:40:47
Re: Вычисление результата (bac) 18/01/2007 - 22:03:15
Re: Вычисление результата (Wedlor) 19/01/2007 - 13:40:44
Re: Вычисление результата (bac) 19/01/2007 - 19:59:30
Re: Вычисление результата (Wedlor) 19/01/2007 - 23:02:26
Re: Вычисление результата (bac) 20/01/2007 - 09:52:25
Re: Вычисление результата (Wedlor) 20/01/2007 - 14:56:38
> Original message text:
> From: Wedlor - 18/01/2007 - 14:40:47
> Subject:Вычисление результата
> -----------------
> Ситуация:
> Есть таблица, в которой хранится три столбца (id, count, type). Как сделать так, чтобы для каждого id в зависимости от type (если он 1, то сложить, если два - вычесть) высчитывался count.
> Пример:
> id 1 1 2 3 3
> count 7 3 5 6 9
> type 1 2 2 2 1
>
> Т.е. в итоге должно быть что для id1 = 7 - 4 = 3 для id2 = -5, для id3 = -6 + 9 = 3
>
> И еще, каким запросом можно сопоставить id со столбцом другой таблицы?
>
From: bac - 18/01/2007 - 22:03:15
Subject:Вычисление результата
-----------------
Если я правильно понял (с учетом того что что "для id1 = 7 - 4 = 3" здесь ошибка, должно быть что для id1 = 7 - 3 = 4)
create table t (
`id` integer,
`count` integer,
`type` integer
);
insert into t values ( 1, 7, 1) , (1 , 3, 2), (2, 5, 2), (3, 6, 2), (3, 9, 1);
select id, sum( if(`type` = 1, `count`, -`count`)) from t group by id;
И еще маленькое замечание
Не желательно именам полей давать какие-либо зарезрвированные слова (count, type)
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
30541
|
|