Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
4-54381
sveloga
2003-01-23 13:19
2003.03.17
FindWindow


14-54195
maxtaran
2003-03-03 05:56
2003.03.17
HELP SOS HELP помогите разобраться с системным треем


6-54152
WingGod
2003-01-24 02:45
2003.03.17
События...


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


14-54164
VID
2003-03-01 22:17
2003.03.17
Срочно в номер!!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский