ďťż
 
[MS SQL] Zapytanie wyswietlajace (lub nie) adresy na podstawie warunku ďťż
 
[MS SQL] Zapytanie wyswietlajace (lub nie) adresy na podstawie warunku
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

[MS SQL] Zapytanie wyswietlajace (lub nie) adresy na podstawie warunku



Mariusz M. - 04-09-2007 00:08
[MS SQL] Zapytanie wyswietlajace (lub nie) adresy na podstawie warunku
 
Witam. Prosze o pomoc :)

Zapytanie ma dzialac nastepujaco:

Jeśli do danej osoby jest przypisany drugi adres to zapytanie ma wyświetlić
właśnie drugi, pierwszego w ogóle nie wyswietlajac.

Nie mam pomyslu, probowalem z select case ale nie wiem jak tam wstawic
warunek sprawdzania numeru adresu.

Struktura tabel

tab.id --dodane tylko dla zobrazowania problemu
tab.NumerAdresu --dodane tylko dla zobrazowania problemu
tab.kod_pocztowy,
tab.miasto,
tab.ulica,
tab.adres
tab2.dopisek

FROM
tab1, tab2

where
tab1.id = tab2.id

Wynik polecenia

1. 1001|1|87-800.|Wloclawek|Miodowa....|24........|Kowalski
2. 1001|2|NULL..|NULL.......|NULL.........|NULL..|NUL L
3. 1002|1|04-371.|Warszawa.|Kobielska....|31........|Jurkowska
4. 1002|2|NULL..|NULL.......|NULL.........|NULL..|NUL L
5. 1003|1|04-371.|Warszawa.|Grochowska|15........|Zielinski
6. 1003|2|03-415.|Warszawa.|Puławska.....|21........|NULL

Je chce oczywiscie bez wierszy z polami null oraz zamiast wiersza 5 wiersz
6.

Czyli ma byc cos takiego:

IF tab.NumerAdresu=2 AND tab.miasto IS NOT NULL
WYSWIETL wiersz w ktorym NumerAdresu = 2

ELSE
WYSWIETL wiersz w ktorym NumerAdresu = 1

Macie jakies pomysly?

Mariusz





Sylwester Lewandowski - 04-09-2007 00:08

  Hej,

Może tak:

SELECT A.street, P.fname,A.addressNr
FROM Addresses A
INNER JOIN Persons P ON P.pID = A.pID
WHERE A.addressNr = 2
UNION ALL
SELECT A.street, P1.fname,A.addressNr
FROM Addresses A
INNER JOIN Persons P1 ON P1.pID = A.pID
WHERE A.addressNr = 1
AND NOT EXISTS (SELECT *
FROM Addresses A
INNER JOIN Persons P2 ON P2.pID = A.pID
WHERE A.addressNr = 2
AND P1.pID = P2.pID)

Pozdr.

Mariusz M. pisze:
> Witam. Prosze o pomoc :)
>
>
> Zapytanie ma dzialac nastepujaco:
>
> Jeśli do danej osoby jest przypisany drugi adres to zapytanie ma wyświetlić
> właśnie drugi, pierwszego w ogóle nie wyswietlajac.
>
> Nie mam pomyslu, probowalem z select case ale nie wiem jak tam wstawic
> warunek sprawdzania numeru adresu.
>
> Struktura tabel
>
> tab.id --dodane tylko dla zobrazowania problemu
> tab.NumerAdresu --dodane tylko dla zobrazowania problemu
> tab.kod_pocztowy,
> tab.miasto,
> tab.ulica,
> tab.adres
> tab2.dopisek
>
> FROM
> tab1, tab2
>
> where
> tab1.id = tab2.id
>
>
> Wynik polecenia
>
> 1. 1001|1|87-800.|Wloclawek|Miodowa....|24........|Kowalski
> 2. 1001|2|NULL..|NULL.......|NULL.........|NULL..|NUL L
> 3. 1002|1|04-371.|Warszawa.|Kobielska....|31........|Jurkowska
> 4. 1002|2|NULL..|NULL.......|NULL.........|NULL..|NUL L
> 5. 1003|1|04-371.|Warszawa.|Grochowska|15........|Zielinski
> 6. 1003|2|03-415.|Warszawa.|Puławska.....|21........|NULL
>
> Je chce oczywiscie bez wierszy z polami null oraz zamiast wiersza 5 wiersz
> 6.
>
>
> Czyli ma byc cos takiego:
>
> IF tab.NumerAdresu=2 AND tab.miasto IS NOT NULL
> WYSWIETL wiersz w ktorym NumerAdresu = 2
>
> ELSE
> WYSWIETL wiersz w ktorym NumerAdresu = 1
>
>
> Macie jakies pomysly?
>
> Mariusz
>
>




Mariusz M. - 08-09-2007 00:05

 
Użytkownik "Sylwester Lewandowski" <camlan_remove_@vp.pl> napisał w
wiadomości news:fbh9oo$3tc$1@atlantis.news.tpi.pl...
> Hej,
>
> Może tak:
>
> SELECT A.street, P.fname,A.addressNr
> FROM Addresses A

Dzieki ogromne :)

--
Pozdrawiam
Mariusz
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?= [oracle] - Oracle SQL Developer - co to jest SID? [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?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • fantazia.htw.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