ďťż
 
Kolejne pytanie o zapytanie - czy sie da? ďťż
 
Kolejne pytanie o zapytanie - czy sie da?
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

Kolejne pytanie o zapytanie - czy sie da?



BH - 17-06-2007 00:17
Kolejne pytanie o zapytanie - czy sie da?
  Witam
Sorry za lawine pytan ale nie zajmuje sie na codzien bazami :(
Mam tabele dzialow m.in. z polami: dzial_id, dzial_nazwa, dzial_czy_sekcja
(t/n), dzial_sek_id_dzial (tutaj jest wpisany zawartosc pola dzial_id).
Wypisuje dzialy w php w petli segregujac po nazwie dzialu.
No i teraz problem potrzebuje kolejnosci:
Dzial - np. ksiegowosci o jakims ID ale zeby pod nim dalo sie pokazac sekcje
dzialu ksiegowosci. Te sekcje maja w polu dzial_sek_id_dzial wpisany ID
dzialu ksiegowosci, a w polu dzial_czy_sekcja znak 't'.
Czy da sie to zalatwic jednym zapytaniem zeby nie komplikowac petli kolejnym
sprawdzaniem?

Bogdan





Marcin Miga - 17-06-2007 00:17

  On 31 Maj, 13:31, BH <bh@wytnijto_sih.pl> wrote:
> Witam
> Sorry za lawine pytan ale nie zajmuje sie na codzien bazami :(
> Mam tabele dzialow m.in. z polami: dzial_id, dzial_nazwa, dzial_czy_sekcja
> (t/n), dzial_sek_id_dzial (tutaj jest wpisany zawartosc pola dzial_id).
> Wypisuje dzialy w php w petli segregujac po nazwie dzialu.
> No i teraz problem potrzebuje kolejnosci:
> Dzial - np. ksiegowosci o jakims ID ale zeby pod nim dalo sie pokazac sekcje
> dzialu ksiegowosci. Te sekcje maja w polu dzial_sek_id_dzial wpisany ID
> dzialu ksiegowosci, a w polu dzial_czy_sekcja znak 't'.
> Czy da sie to zalatwic jednym zapytaniem zeby nie komplikowac petli kolejnym
> sprawdzaniem?
>
> Bogdan

da si?.
Tu powinna si? moja wypowied? sko?czy?...
/*
CREATE TABLE dzialy(dzial_id int NOT NULL, dzial_nazwa varchar(20) NOT
NULL, dzial_czy_sekcja char(1) NULL CONSTRAINT DEF_dzial DEFAULT 't',
dzial_sek_id_dzial int NULL)

INSERT INTO dzialy VALUES(1, 'ksiegowosc', NULL, NULL)
INSERT INTO dzialy VALUES(2, 'produkcja', NULL, NULL)
INSERT INTO dzialy VALUES(3, 'kierownictwo', NULL, NULL)

INSERT INTO dzialy VALUES(11, 'ksiegowosc ST', 't', 1)
INSERT INTO dzialy VALUES(12, 'ksiegowosc FK', 't', 1)
INSERT INTO dzialy VALUES(13, 'ksiegowosc KP', 't', 1)

INSERT INTO dzialy VALUES(21, 'produkcja betonu', 't', 2)
INSERT INTO dzialy VALUES(22, 'produkcja stali', 't', 2)

INSERT INTO dzialy VALUES(31, 'sekretariat', 't', 3)
*/

SELECT * FROM dzialy ORDER BY isnull(dzial_sek_id_dzial, dzial_id),
dzial_id

pozdrawiaMM




BH - 17-06-2007 00:17

  Marcin Miga wrote:

> SELECT ** FROM dzialy ORDER BY *isnull(dzial_sek_id_dzial, dzial_id),
> dzial_id
Dziekuje ale z moja struktura bazy to nie dziala.
Mam taka tabele:
dzial_id integer NOT NULL
nextval(('"dzial_dzial_id_seq"'::text)::regclass)

dzial_naz character varying(50)
dzial_kier character varying(60)
dzial_tel character varying(25)
dzial_typ character varying(2)
dzial_zadania text
dzial_akt character varying(1)
dzial_nazd character varying(500)
dzial_data time with time zone
dzial_redaktor integer
dzial_datax timestamp with time zone
dzial_fax character varying(25)
dzial_email character varying(50)
dzial_sek_id_dzial integer 0 (domyslnie)
dzial_czy_sekcja character(1)

Czyli NOT NULL jest tylko w dzial_id.

Bogdan




Marcin Miga - 17-06-2007 00:17

  On 1 Cze, 09:21, BH <bh@wytnijto_sih.pl> wrote:
> Dziekuje ale z moja struktura bazy to nie dziala.
> Mam taka tabele:
> dzial_id integer NOT NULL
> nextval(('"dzial_dzial_id_seq"'::text)::regclass)
>
> dzial_naz character varying(50)
> dzial_kier character varying(60)
> dzial_tel character varying(25)
> dzial_typ character varying(2)
> dzial_zadania text
> dzial_akt character varying(1)
> dzial_nazd character varying(500)
> dzial_data time with time zone
> dzial_redaktor integer
> dzial_datax timestamp with time zone
> dzial_fax character varying(25)
> dzial_email character varying(50)
> dzial_sek_id_dzial integer 0 (domyslnie)
> dzial_czy_sekcja character(1)
>
> Czyli NOT NULL jest tylko w dzial_id.
>

To daj jeszcze próbk? danych i spodziewany wynik. Ew. mo?esz sam
pokombinowa? z zamian?:
isnull(dzial_sek_id_dzial, dzial_id), dzial_id
na:
case when dzial_czy_sekcja = 't' then dzial_id else dzial_sek_id_dzial
end, dzial_id
(lub cos w tym guscie - pisane bezposrednio tu, bez sprawdzania)

pozdrawiaMM
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?= phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?= [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?= [MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?= mecze sie i mecze i nic - zapytanie czesciowe
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anette.xlx.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