Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

сгрупировать стороки, просуммировать и размистить в столбцы :))   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
3-53871
jtiger
2003-02-19 11:01
2003.03.17
Проблема при записи текста на русском текста в MSSQL2000


14-54312
Supreme 2
2003-02-28 01:06
2003.03.17
Что мне ответить девушке


8-54125
Noname_
2002-12-04 12:14
2003.03.17
UYVY -> RGB


14-54236
Mystic
2003-02-27 14:38
2003.03.17
Вселенная


9-53828
Константин
2002-10-13 17:22
2003.03.17
Несколько ??? о разработке игр