ďťż
 
Select jak crosstab ďťż
 
Select jak crosstab
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Select jak crosstab



maalek@go2.pl - 30-03-2006 00:13
Select jak crosstab
  Witam

Mam powiedzmy tabelę:

id_konta | id_ludzika | kwota

X ludzików wykonuje operacje na Y kontach przy czym jednen ludzik
może
wykonac na tym samym koncie kilka operacji.

Pytanie:

Jak zrobić SELECTA tak aby wierszami były konta, kolumnami ludziki a
w
przecięciu suma kwot z operacji ludzik/konto ?

Pozdrawiam
maalek





Rafal sxat - 30-03-2006 00:13

  >
> Mam powiedzmy tabelę:
>
> id_konta | id_ludzika | kwota
>
> X ludzików wykonuje operacje na Y kontach przy czym jednen ludzik
> może
> wykonac na tym samym koncie kilka operacji.
>
> Pytanie:
>
> Jak zrobić SELECTA tak aby wierszami były konta, kolumnami ludziki a
> w
> przecięciu suma kwot z operacji ludzik/konto ?

to jest mozliwe do zrobienia ale przynajmniej 2 zapytaniami przy zalozeniu
ze nie masz wiecej niz 1000 ludzikow bo to moze byc troche ciezkie do
uniesienia naraz w pamieci
pozdr
Rafal
(sxat)

--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych




maalek@go2.pl - 30-03-2006 00:13

  Ludzików jest mało (kilkadziesiąt) kont podobnie, cała baza
śmiesznie mała na obecny sprzęt. Mozna to oczywiście robić
procedurą czy na zewnątrz bazy ale chciałem czystego SQLa.

Więc ? Może jakiś przykładzik malutki ?

Pozdrawiam
maalek

> to jest mozliwe do zrobienia ale przynajmniej 2 zapytaniami przy zalozeniu
> ze nie masz wiecej niz 1000 ludzikow bo to moze byc troche ciezkie do
> uniesienia naraz w pamieci
> pozdr
> Rafal
> (sxat)




Grzegorz Danowski - 30-03-2006 00:13

  Użytkownik <maalek@go2.pl> napisał w wiadomości
news:1143639857.330721.204360@t31g2000cwb.googlegr oups.com...
<cite>
Ludzików jest mało (kilkadziesiąt) kont podobnie, cała baza
śmiesznie mała na obecny sprzęt. Mozna to oczywiście robić
procedurą czy na zewnątrz bazy ale chciałem czystego SQLa.

Więc ? Może jakiś przykładzik malutki ?
</cite>

Proszę bardzo:
TRANSFORM
Sum(T.kwota) AS RazemKwota
SELECT
T.id_konta
FROM
TabelaZrodlowa As T
GROUP BY
T.id_konta
PIVOT
T.id_ludzika

Ps. Złośliwy jestem dzisiaj, więc musisz zgadnąć w jakiej bazie to działa,
może przypadkiem będzie to ta, której używasz, ja niestety nie wiem...





maalek@go2.pl - 30-03-2006 00:13

  MS A... ?

Niestety takiej nie uzywam :), MySQL




Grzegorz Danowski - 30-03-2006 00:13

  Uzytkownik <maalek@go2.pl> napisal w wiadomosci
news:1143647524.729802.162600@t31g2000cwb.googlegr oups.com...
> MS A... ?
>
> Niestety takiej nie uzywam :), MySQL
>

Moze w MySQL jest jakas specjalna funkcja (analogiczna do tej, która jest w
Accessie lub podobna do tej ze SQL Servera 2005), jesli nie, to mozesz
zawsze zrobic cos w stylu:

Select
Id_konta,
Sum(Case When Id_ludzika = 1 Then kwota Else 0 End) As ludzik1,
Sum(Case When Id_ludzika = 2 Then kwota Else 0 End) As ludzik2,
Sum(Case When Id_ludzika = 3 Then kwota Else 0 End) As ludzik3,
.....
From
TwojaTabela
Group By
Id_konta

Oczywiscie, caly ten SQL najlepiej generowac dynamicznie w zaleznosci od
listy uzytkowników. Ale moim zdaniem i tak najlepiej generowac takie dane po
stronie klienta, najpierw podsumowac sprzedaz dla kazdego konta i ludzika,
potem dynamicznie tworzyc stosowna tabelke. Jak cos takiego zrobilem w c#,
to nawet mozliwa byla edycja scrosowanych tabel (klucz glówny na obu polach
lacznie).

Pozdrawiam
Grzegorz
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • atanvarne633.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com