Форум: "Базы";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
Внизсгрупировать стороки, просуммировать и размистить в столбцы :)) Найти похожие ветки
← →
SkyN (2003-02-24 11:17) [0]Есть таблица, где:
Товар Тип Кол
----- ----- -----
A П 5 //приход 5 штук товара А
B Р 4 //расход 4 штук товара В
A Р 3 //расход 3 штук товара А
A П 2 //приход 2 штук товара А
надо получить
Товар Приход Расход Итого
----- ----- ----- -----
A 7 3 4
В 0 4 -4
Сейчас я закачиваю данные из первой таблицы на клиента и обрабатываю, но работает медленно и врядли это правильный способ.
КАК СДЕЛАТЬ НА SQL?
← →
fool (2003-02-24 11:35) [1]поставь триггер в таблицу 1, который будет обновлять таблицу 2 (итого твой считать)
← →
ermserg (2003-02-24 11:40) [2]to fool
Trigger ne ochen horosheye resheniye. A yesli resultat dolzhen soderzhat danniye tolko za opredelonniy period ili tolko za opredelonniy sklad ili t.d.
← →
fool (2003-02-24 12:01) [3]>ermserg
для заданных условий триггер вполне подходит, для твоих условий лучше подойдет ХП, но условий может быть много, и решений соответственно тоже, зачем придумывать возможные варианты, если автор сформулировал задачу!? (это риторический вопрос, можно не отвечать :))
← →
ermserg (2003-02-24 12:02) [4]Esli est vozmozhnost, to luchshe peredelat tablitsu i izbavitsa ot kolonki Tip - on mozhet bit opredelon znakom pered Kol: - rashod, + prihod. Eto gorazdo uprostit tvoyu zadachu. Esli net takoy vozmozhnosti, to ispolzuy podzaprosi.
← →
ermserg (2003-02-24 12:06) [5]to fool
ya otvechu :) Ya predpolagayu, chto avtor hotel uprostit vopros i ne vkluchil vse polya v narisovannuyu im tablitsu. Ego risunok ne soderzhit primary key column, to veroyatnee vsego on est v realnoy tablitse. Takzhe vpolne logichno predpolozhit, chto original soderzhit i datetime column.
← →
Fiend (2003-02-24 12:17) [6]select товар, sum(case when Тип=П then Кол end) as Приход,
sum(case when Тип=Р then Кол end) as Расход,
sum(case when Тип=П then Кол when Тип=Р then -Кол end) as Итого
from Таблица
group by Товар
и делов то :)
← →
yozhik (2003-02-24 12:19) [7]select Товар, SUM(CASE WHEN Тип="П" THEN SUM(Кол) END) as Приход,
SUM(CASE WHEN Тип="Р" THEN SUM(Кол) END) as Расход,
SUM(CASE WHEN Тип="П" THEN SUM(Кол) END)-SUM(CASE WHEN Тип="Р" THEN SUM(Кол) END) as Итого
from Table
group by Товар
← →
Fiend (2003-02-24 12:22) [8]То yozhik
прям мысли прочтил :)
← →
yozhik (2003-02-24 12:23) [9]Сорри, что угадал... но набрал позже :)
← →
SkyN (2003-02-24 13:02) [10]Спасибо
прав ermserg
и Fiend с yozhik если будет работать. в чем я уверен
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c