Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ORACLE 10g + zapytanie sql
kilabdg
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.03.2010
Skąd: Bydgoszcz

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


Witam serdecznie! Próbuję zrobić raport w Crystal Reports XI który umożliwia wprowadzanie zapytań sql. Problem jest następujący

Mam sobie 2 tabele:

inventory_part_in stock
purchase_req_line_all

Muszę je połączyć pewnymi polami: dla inv.. jest to pole lot_batch_no a dla purchase jest to order_no. Wszystko byłoby pięknie gdyby nie to że pole lot_batch_no jest w formacie np. V1234-1-1 a order_no V1234. Napisałem z pomocą kolegów zapytanie:

  1. SELECT substr(a.lot_batch_no,1,(instr(a.lot_batch_no,'-'))-1) order_no, a.*
  2. FROM ifsapp.inventory_part_in_stock a

które teoretycznie powinno oddzielić numerek V1234 od całego ciągu. Dlaczego teoretycznie? Dlatego, że raport generuje mi się pół dnia!! Strasznie wolno pobierane są dane. Czy ma ktoś jakiś pomysł jak połączyć te tabele?? Chodzi o wyciągnięcie materiałów (indeksów, opisów, zapasu itp) z tabeli inventory_part_in_stock gdzie rozdzielony lot_batch_no (bez -1-1) jest równy purchase_req_line_all.order_no.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Spróbuj tego
  1. SELECT * FROM inventory_part_in_stock ipis WHERE SUBSTR(ipis.lot_batch_no, 1, (INSTR(ipis.lot_batch_no, '-')) - 1) IN (SELECT order_no FROM purchase_req_line_all)
Zaznaczam, że wydajność nie będzie pierwszorzędna i wszystko zależy od tego, jakie dane znajdują się w purchase_req_line_all (a dokładniej od ilości tych danych).
Go to the top of the page
+Quote Post
kilabdg
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 18.03.2010
Skąd: Bydgoszcz

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


wpisałem to zapytanie i zauważyłem, że od razu przy zapisywaniu zapytania już długo myślał. Ale w końcu się odmulił. Wrzuciłem dane do raportu i klops (IMG:style_emoticons/default/sad.gif) tak samo długo się generują rekordy (IMG:style_emoticons/default/sad.gif) dlaczego tak długo to trwa w ogóle??

Cytat(mortus @ 8.04.2010, 08:51:01 ) *
Spróbuj tego
  1. SELECT * FROM inventory_part_in_stock ipis WHERE SUBSTR(ipis.lot_batch_no, 1, (INSTR(ipis.lot_batch_no, '-')) - 1) IN (SELECT order_no FROM purchase_req_line_all)
Zaznaczam, że wydajność nie będzie pierwszorzędna i wszystko zależy od tego, jakie dane znajdują się w purchase_req_line_all (a dokładniej od ilości tych danych).


wpisałem to Twoje zapytanie nie do programu raportującego Crystal Reports ale do programu do obsługi bazy danych IFS Application i działa super (IMG:style_emoticons/default/smile.gif) rekordy się pobierają błyskawicznie (IMG:style_emoticons/default/winksmiley.jpg) także dziękuję za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Method
post
Post #4





Grupa: Zarejestrowani
Postów: 177
Pomógł: 6
Dołączył: 14.01.2003
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


pomyśl zawczasu nad jakimś zmaterializowanym widokiem, bo jak Ci spuchną tabele to będzie lipa.
A w ogóle to z tego co pamietam ze struktur i nazewnictwa IFS'a to działasz na widokach a nie tabelkach, co już daje duże narzuty.

Taki mały hint: tabele w IFSie mają końcówkę nazwy _tab (IMG:style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 01:34