Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pomoc w zapytaniu, Posklejanie kilku tabel
mysz0n
post 29.04.2014, 22:29:46
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

Ostrzeżenie: (0%)
-----


Witam
od jakiegos czasu męczę się z zapytaniem. Słowem wyjaśnienia, mam tabele z kontrahentem i jego fakturami - do tego dorzucam nazwę magazynu z jakiego została pobrana FV i zakres dat. Wszytsko działa prawidłowo. Dalej mam tabele z cechami danego kontrahenta - wyświetlanie połączenia danych kontrahenta z jego cechami - również banał.
tak wyglądają te 2 zapytania:

  1. SELECT adr_IdObiektu,dok_MagId,dok_NrPelny,dok_DataWyst,dok_WartBrutto,adr_NazwaPelna,adr_Adres, adr_Kod, adr_Miejscowosc
  2. FROM dok__Dokument
  3. LEFT JOIN dbo.adr__Ewid
  4. ON adr_IdObiektu = dok_PlatnikId
  5. WHERE dok_DataWyst BETWEEN '2014-04-01 00:00:00.0' AND '2014-05-01 00:00:00.0'
  6. AND adr_TypAdresu = 1
  7. AND dok_MagId =2
  8. AND dok_typ=2


  1. SELECT ckh_Nazwa, ck_IdKhnt,adr_NazwaPelna
  2. FROM sl_CechaKh, kh_CechaKh, adr__Ewid
  3. WHERE
  4. ck_IdKhnt = adr_IdObiektu
  5. AND ck_IdCecha = ckh_Id
  6. AND ckh_Id = 1
  7. AND adr_TypAdresu = 1


i teraz co chce osiągnąć - chce zobaczyć wszytskich kontrahentów z podaną cechą, którzy NIE maja wystawionej FV w zadanym miesiącu.
Robiłem to na różne sposoby, ale wysiadam
Jak widać polem wspólnym dla tych zapytań jest "adr_IdObiektu"

Ten post edytował mysz0n 29.04.2014, 22:32:42
Go to the top of the page
+Quote Post
mmmmmmm
post 30.04.2014, 00:07:13
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


SELECT z2.* FROM (zapytanie 2) z2 LEFT JOIN (zapytanie 1) z1 ON z1.ar_idObiektu=z2.adr_idObiektu WHERE z2.adr_is_obiektu IS NULL
Go to the top of the page
+Quote Post
mysz0n
post 30.04.2014, 12:04:07
Post #3





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

Ostrzeżenie: (0%)
-----


Dzięki za zainteresowanie. zrobiłem tak:

  1. SELECT z2.* FROM (
  2. SELECT ckh_Nazwa, ck_IdKhnt,adr_NazwaPelna
  3. FROM sl_CechaKh, kh_CechaKh, adr__Ewid
  4. WHERE
  5. ck_IdKhnt = adr_IdObiektu
  6. AND ck_IdCecha = ckh_Id
  7. AND ckh_Id = 1
  8. AND adr_TypAdresu = 1
  9. ) z2 LEFT JOIN (
  10. SELECT adr_IdObiektu,dok_MagId,dok_NrPelny,dok_DataWyst,dok_WartBrutto,adr_NazwaPelna,adr_Adres, adr_Kod, adr_Miejscowosc,dok_PlatnikId
  11. FROM adr__Ewid
  12. LEFT JOIN dok__Dokument
  13. ON dok_PlatnikId = adr_IdObiektu
  14. LEFT JOIN kh_CechaKh
  15. ON ck_IdKhnt = adr_IdObiektu
  16. WHERE dok_DataWyst BETWEEN '2014-04-01 00:00:00.0' AND '2014-05-01 00:00:00.0'
  17. AND adr_TypAdresu = 1
  18. AND dok_MagId =2
  19. AND dok_typ=2
  20. AND ck_IdCecha = 1
  21. ) z1 ON z1.adr_IdObiektu=z2.adr_IdObiektu WHERE z2.adr_IdObiektu IS NULL


Ale pokazuje mi Invalid column name 'adr_IdObiektu' - chodzi mu o tą ostatnią linie - co to może byc ?
Go to the top of the page
+Quote Post
mmmmmmm
post 30.04.2014, 18:47:59
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Do obu podseektów musisz tę kolumnę dodać, aby móc po niej łączyć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 02:49