Главная страница
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.026 c
14-54247
Afonya
2003-02-28 11:09
2003.03.17
Одна


14-54198
Youn1cs
2003-03-01 21:14
2003.03.17
Работа в сети над одним проектом


4-54368
waw
2003-01-22 17:50
2003.03.17
Как вывести стандартное окно свойства файла?


14-54248
Roman Go
2003-02-28 10:31
2003.03.17
Укажите ссылку на какой нибудь учебник по MS SQL Server


1-54027
multik
2003-03-03 22:32
2003.03.17
Привет всем!!! Как узнать какой символ соответствует координатам.