Pobranie 1000 dokumentów

0

Witam
Szanowni forumowicze mam bazę danych z 120000 rekordów potrzebuję pobrać dane 1000 dokumentów o określonym numerze.
Jak zbudować zapytanie
Jestem świeżakiem w temacie

0
select * from BAZA where KOLUMNA = okreslony_numer;

Ewentualnie napisz jak wyglądają tabele, co dokładnie chcesz pobrać, jak wygląda określony numer i czy te 1000 dokumentów to jakaś część z tych które mają określony numer - jeśli tak to jaka.

0

Masz rację powinem zacząć od przedatawienia jak wygląda tabela
Tabela o nazwie produktyzwrotne a w niej kolumny data dokumentu,nr_dokumentu, produkt,nazwa produktu ,ilość,użytkownik zatwierdzający

Takich wpisów jest ok 120000 potrzebuję wyjąć dla sztywno określonych nr dokumentów ilości .
Oczywiście twoje zapytanie spełniło by moje wymaganie pisząc
SELECT * FROM BAZA WHERE KOLUMNA = okreslony_numer or KOLUMNA = okreslony_numer lecz pisanie 1000 razy zajeło by mnóstwo czasu znacie może szybszy sposób

0
Select [data dokumentu],nr_dokumentu, produkt,[nazwa produktu],ilość,[użytkownik zatwierdzający] 
FROM produktyzwrotne 
WHERE nr_dokumentu >= 15000 and nr_dokumentu <=16000

W tym przykładzie pobierzesz 1k dokumentów od numer 150000 do 16000 włącznie.

0

musze pobrać konkretny numer np.
12345
5678
2345
2113

0
SELECT [DATA dokumentu],nr_dokumentu, produkt,[nazwa produktu],ilość,[użytkownik zatwierdzający] 
FROM produktyzwrotne 
WHERE nr_dokumentu IN(12345, 5678, 2345, 2113)

I teraz ... mówisz ze masz 1000 dok .. .ale ine chesz pisać z ręki ... ale musis zmiec jakiejś konkretne numery ... no to common ... jak sobie to wyobrażasz ?? Chyba że jest jakas metoda i zależność w tych numerach która można wyliczyć ? Albo można wybrać poprawne numery jakimś selectem z innej tabeli ? Albo nawet tej samej ?

0

Można tak, ale doczytaj o tabelach tymczasowych i tym jak działąją...

-- Tabela z zawartoscia widoczna per sesja albo transakcja sesji 
CREATE GLOBAL TEMPORARY TABLE moj_filtr (
  produkt_id           NUMBER;
)
ON COMMIT DELETE ROWS;

-- wstawiamy id interesujacych produktów
insert into moj_filtr values (10005);
insert into moj_filtr values (10007);
insert into moj_filtr values (80007);

-- zapytanie + opcjonalnie hint dla optymalizatora, który podpowie mu
-- ile jest rekordów w tabeli tymczasowej, /*+ cardinality(f,3 ) */
select /*+ cardinality(f,3 ) */ p.* from produkty p, moj_filtr f where p.produkt_id=f.produkt_id;

-- czyszczenie tabeli na koniec transakcji, lub wycofanie zmian
commit/rollback; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1