ďťż
 
Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?= ďťż
 
Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?=
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

Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?=



Krzysztof Bielatowicz - 03-11-2007 00:02
Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?=
  Witam

Sytuacja jest taka:

tabele: A, B i C

relacje:
(FK) A.kol2----------B.kol1 (PK)
0..* 1

(PK) A.kol1----------C.kol2 (FK)
1 1..*

Potrzebuję dla każdego rekordu w tabeli A poznać liczbę odpowiadających
rekordów w tabeli C:

A.kol3 | B.kol2 | A.kol4 | ile_rek_w_C
--------------------------------------
aaa | BBB | 123 | 3
bbb | BBB | 254 | 2
ccc | FFF | 129 | 3

Baza danych: postgresql 8.2

Krzysztof Bielatowicz





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 03-11-2007 00:03

  Krzysztof Bielatowicz wrote:
> Witam
>
> Sytuacja jest taka:
>
> tabele: A, B i C
>
> relacje:
> (FK) A.kol2----------B.kol1 (PK)
> 0..* 1
>
> (PK) A.kol1----------C.kol2 (FK)
> 1 1..*
>
> Potrzebuję dla każdego rekordu w tabeli A poznać liczbę odpowiadających
> rekordów w tabeli C:
>
> A.kol3 | B.kol2 | A.kol4 | ile_rek_w_C
> --------------------------------------
> aaa | BBB | 123 | 3
> bbb | BBB | 254 | 2
> ccc | FFF | 129 | 3
>
> Baza danych: postgresql 8.2

W podzapytaniu policz liczbę rekordów w C.

--
P.M.




Krzysztof Bielatowicz - 03-11-2007 00:03

  Dnia 2 lis 2007 18:42, Użytkownik Paweł Matejski napisał:
>
> W podzapytaniu policz liczbę rekordów w C.
>

Chyba działa:

SELECT A.kol3, B.kol2, A.kol4, (SELECT count(*) FROM C WHERE
A.kol1=C.kol2) AS "ile_rek_w_C" FROM A JOIN B ON A.kol2=B.kol1;

Próbowałem wcześniej, ale mi nie wychodziło. Ta odpowiedź, chociaż mało
konkretna dla kogoś, kto nie wie jak to zrobić - pomogła.

Dzięki

Krzysztof Bielatowicz




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 03-11-2007 00:03

  Krzysztof Bielatowicz wrote:
> Dnia 2 lis 2007 18:42, Użytkownik Paweł Matejski napisał:
>>
>> W podzapytaniu policz liczbę rekordów w C.
>>
>
> Chyba działa:
>
> SELECT A.kol3, B.kol2, A.kol4, (SELECT count(*) FROM C WHERE
> A.kol1=C.kol2) AS "ile_rek_w_C" FROM A JOIN B ON A.kol2=B.kol1;
>
> Próbowałem wcześniej, ale mi nie wychodziło. Ta odpowiedź, chociaż mało
> konkretna dla kogoś, kto nie wie jak to zrobić - pomogła.

Wynik będziesz miał poprawny, ale wydajność możesz mieć kiepską
(chyba, że ograniczasz ilość zwracanych rekordów A do kilku).
Lepiej jest IMHO tak:

SELECT A.kol3, B.kol2, A.kol4,SC."ile_rek_w_C"
FROM A, B,
(SELECT C.kol2,count(*) AS "ile_rek_w_C" FROM C) SC
WHERE A.kol2=B.kol1
AND A.kol1=SC.kol2;

--
P.M.





Krzysztof Bielatowicz - 04-11-2007 00:01

  Dnia 2 lis 2007 20:28, Użytkownik Paweł Matejski napisał:
>
> Wynik będziesz miał poprawny, ale wydajność możesz mieć kiepską
> (chyba, że ograniczasz ilość zwracanych rekordów A do kilku).
> Lepiej jest IMHO tak:
>
> SELECT A.kol3, B.kol2, A.kol4,SC."ile_rek_w_C"
> FROM A, B,
> (SELECT C.kol2,count(*) AS "ile_rek_w_C" FROM C) SC
> WHERE A.kol2=B.kol1
> AND A.kol1=SC.kol2;
>

Dzięki, ale żeby ruszyło musiałem dać:
.... (SELECT C.kol2,count(*) AS "ile_rek_w_C" FROM C GROUP BY C.kol2) ...

Krzysztof Bielatowicz
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MySQL/PHP] Wyszukiwanie rekordu przez kolumnę wskazaną przez zmienną [MSSQL 2000] czas wykonywania instrukcji INSERT - czy zalezy od ilosci danych w tabeli? [MSSQL] Jak uj?c w tabeli [ID usera] (zamiast tekstu) zuwierzytelniania NT? [mysql 4.0.24] INSERT do tabeli z automatyczną inkrementacją wartości pola. [MsSQL]Jaka blokada tabeli dla pobrania następnego nr faktury [ms sql 2000] Replikacja - zmiana typu kolumny w tabeli ? [Oracle] Jak opymalnie update'owac tabele danymi z innej tabeli Nazwa tabeli jako parametr do procedury dla SQL2005 Server - jakprzekazac? MS SQL - jak zwrócić zawartość tabeli tylko z wielkimi literami clipper - jakie narzędzie pokaże daty wpisanych rekordów w bazie?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • misida.pev.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