[MSSQL2000] Select z obliczaniem wartosci
kinde - 30-08-2007 00:01
[MSSQL2000] Select z obliczaniem wartosci
Witam Mam taka oto tabele:
1 - A - 1 2 - B - 50 3 - A - 3 4 - A - 7 5 - B - 56
A chce obliczyc roznice ilosci dla wczesniejszych wartosci i z podzialem na grupy (A i B) czyli wynikiem zapytania powinno byc:
1-A-1-0 (bo 1 minus 0) 2-B-50-0 (bo 50 minus 0) 3-A-3-2 (bo 3 minus 1) 4-A-7-4 (bo 7 minus 3) 5-B-56-6 (bo 56 minus 50)
Jak sie do tego zabrac?
Pozdrawiam kinde
Marcin Miga - 30-08-2007 00:01
kinde napisa (a): > Witam > Mam taka oto tabele: > > 1 - A - 1 > 2 - B - 50 > 3 - A - 3 > 4 - A - 7 > 5 - B - 56 > > A chce obliczyc roznice ilosci dla wczesniejszych wartosci i z podzialem na > grupy (A i B) czyli wynikiem zapytania powinno byc: > > 1-A-1-0 (bo 1 minus 0) > 2-B-50-0 (bo 50 minus 0) > 3-A-3-2 (bo 3 minus 1) > 4-A-7-4 (bo 7 minus 3) > 5-B-56-6 (bo 56 minus 50) > > Jak sie do tego zabrac? >
/* create table ##mmm (lp int not null, s1 varchar(1) not null, m1 int not null)
insert into ##mmm values(1, 'A', 1) insert into ##mmm values(2, 'B', 50) insert into ##mmm values(3, 'A', 3) insert into ##mmm values(4, 'A', 7) insert into ##mmm values(5, 'B', 56) */
select lp, s1, m1, m1- Coalesce((SELECT Sum(m1) FROM ##mmm m2 WHERE m1.s1=m2.s1 AND m1.lp>m2.lp), 0) Suma FROM ##mmm m1
pozdrawiaMM
kinde - 30-08-2007 00:01
Uzytkownik "Marcin Miga" <marcin.miga@gmail.com> napisal w wiadomosci news:1188379008.103424.241930@r34g2000hsd.googlegr oups.com... > select lp, s1, m1, m1- Coalesce((SELECT Sum(m1) FROM ##mmm m2 WHERE > m1.s1=m2.s1 AND m1.lp>m2.lp), 0) Suma FROM ##mmm m1 > pozdrawiaMM
dziekuje bardzo aczkolwiek select nie zwraca takich wartosci jakie chcialem ;) cos tu jest jeszcze zle
pozdrawiam kinde
kinde - 30-08-2007 00:01
Użytkownik "kinde" <kinde@ableble.poczta.onet.pl.wywalic> napisał w wiadomości news:fb3kk4$6ka$1@nemesis.news.tpi.pl... > Uzytkownik "Marcin Miga" <marcin.miga@gmail.com> napisal w wiadomosci > news:1188379008.103424.241930@r34g2000hsd.googlegr oups.com... >> select lp, s1, m1, m1- Coalesce((SELECT Sum(m1) FROM ##mmm m2 WHERE >> m1.s1=m2.s1 AND m1.lp>m2.lp), 0) Suma FROM ##mmm m1 >> pozdrawiaMM > dziekuje bardzo aczkolwiek select nie zwraca takich wartosci jakie > chcialem ;) > cos tu jest jeszcze zle
ach, troszke to dostosowalem do wlasnych potrzeb i dziala super, dziekuje bardzo za pomysl ! :)
pozdrawiam kinde
wloochacz - 31-08-2007 00:13
[ciach]
IMO zamiast ##temptable lepiej:
declare @t table (lp int not null, s1 varchar(1) not null, m1 int not null primary key(lp))
insert into @t values(1, 'A', 1) insert into @t values(2, 'B', 50) insert into @t values(3, 'A', 3) insert into @t values(4, 'A', 7) insert into @t values(5, 'B', 56)
-- wloochacz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[help] Illustrator CS - =?ISO-8859-2?Q?znikn=B1=B3_Selection_?==?ISO-8859-2?Q?Tool_=28V=29?=
[mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu.
SELECT MAX(nazwaPola) FROM tabela WHERE .... i ORA-01405: pobran? warto?ci? kolumny jest NULL
=?iso-8859-2?q?select_sum_i_dwie_tabele..._b=B3=EAdna_agregac ja?=
=?iso-8859-2?Q?=5BMySql=5D_-_select_po_5_rekordow_mniejssych_i_wi=EAkszych?=
=?iso-8859-2?Q?=5BMySql=5D_Select_wed=B3ug_nazwy_pola?=
=?ISO-8859-2?Q?[mysql]_Nie_potrafi=EA_zgrupowa=E6_selecta_(proste)?=
=?ISO-8859-2?Q?[MS_SQL]_update_wielu_p=F3l_na_raz_z_selecta?=
Wstawianie nowego wiersza w przypadku jego braku podczas SELECT w PostgreSQL
[pgsql] jak =?ISO-8859-2?Q?zrobi=E6_taki_select_=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.ploefg.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|