Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ORACLE 10g + zapytanie sql
Forum PHP.pl > Forum > Bazy danych > Oracle
kilabdg
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.
mortus
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).
kilabdg
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 sad.gif tak samo długo się generują rekordy 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 smile.gif rekordy się pobierają błyskawicznie winksmiley.jpg także dziękuję za pomoc smile.gif
Method
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 dry.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.