![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сгрупировать стороки, просуммировать и размистить в столбцы :)) [D6, MSSQL]
SkyN © (2003-02-24 11:17:00)Есть таблица, где:
Товар Тип Кол
----- ----- -----
A П 5 //приход 5 штук товара А
B Р 4 //расход 4 штук товара В
A Р 3 //расход 3 штук товара А
A П 2 //приход 2 штук товара А
надо получить
Товар Приход Расход Итого
----- ----- ----- -----
A 7 3 4
В 0 4 -4
Сейчас я закачиваю данные из первой таблицы на клиента и обрабатываю, но работает медленно и врядли это правильный способ.
КАК СДЕЛАТЬ НА SQL?
SkyN (2003-02-24 13:02:00) [1]Спасибо
прав ermserg
и Fiend с yozhik если будет работать. в чем я уверен
yozhik (2003-02-24 12:23:00) [2]Сорри, что угадал... но набрал позже :)
Fiend (2003-02-24 12:22:00) [3]То yozhik
прям мысли прочтил :)
yozhik (2003-02-24 12:19:00) [4]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:17:00) [5]select товар, sum(case when Тип=П then Кол end) as Приход,
sum(case when Тип=Р then Кол end) as Расход,
sum(case when Тип=П then Кол when Тип=Р then -Кол end) as Итого
from Таблица
group by Товар
и делов то :)
ermserg (2003-02-24 12:06:00) [6]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.
ermserg (2003-02-24 12:02:00) [7]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.
fool (2003-02-24 12:01:00) [8]>ermserg
для заданных условий триггер вполне подходит, для твоих условий лучше подойдет ХП, но условий может быть много, и решений соответственно тоже, зачем придумывать возможные варианты, если автор сформулировал задачу!? (это риторический вопрос, можно не отвечать :))
ermserg (2003-02-24 11:40:00) [9]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 11:35:00) [10]поставь триггер в таблицу 1, который будет обновлять таблицу 2 (итого твой считать)