Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytania SQL...
funfel
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 21.09.2006

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


Witam,
Nie bardzo mogę sobie poradzić z kilkoma zapytaniami SQL, m.in.:

1. Wypisz jakie usługi dla kontraktów 2,3 i 4 były aktywne w 2001-07-02.
2. Dla każdego kontraktu w bazie, wypisz aktualny status usługi nr 10 i nr
20.

Zalecana postać:

ID_KONTRAKTU USL_10 USL_20
1 "Aktywna" "Aktywna"
2 "Aktywna" "Deaktywna"
3 "Deaktywna" "Deaktywna"

3. Wypisz wszystkie usługi, dla kontraktu, mającego aktualnie najwięcej
włączonych usług.

Gdyby ktoś mial jakieś pomysły, to proszę o pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Z gry dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Zapytania dotyczą tabeli Uslugi
Dodam że atrybut data_zm określa datę zmiany stanu usługi z aktywnej na
nieaktywna i odwrotnie.

Pozdrawiam, Bartek

A oto kod generujący tabele:

  1. CREATE TABLE USLUGI
  2. (
  3. KONTRAKT_ID NUMBER(10),
  4. USLUGA_ID NUMBER(4),
  5. SEQNO NUMBER(4),
  6. DATA_ZM DATE,
  7. STATUS VARCHAR(1)
  8. );
  9.  
  10. TRUNCATE TABLE uslugi;
  11.  
  12. declare j number;
  13. k number;
  14. u number;
  15. sq number;
  16. d1 number;
  17. dt date;
  18. dt2 date;
  19. st number;
  20. us_n number;
  21.  
  22. BEGIN dt := TO_DATE ('2000-01-01', 'YYYY-MM-DD');
  23. FOR j IN 1 .. 10000
  24. LOOP
  25. u:=1;
  26. d1 := TRUNC (DBMS_RANDOM.VALUE (1, 1300));
  27. sq := TRUNC (DBMS_RANDOM.VALUE (1, 4));
  28. dt2 := dt + d1;
  29. k :=0;
  30. us_n := TRUNC (DBMS_RANDOM.VALUE (1, 20));
  31. FOR i IN 1 .. us_n
  32. LOOP
  33. k := TRUNC (DBMS_RANDOM.VALUE (1, 10));
  34. --sys.dbms_output.put_line(to_char(dt2,'YYYY-MM-DD'));
  35. INSERT INTO uslugi VALUES (j, u , 0, dt2, 'a');
  36. IF sq>1 then
  37. INSERT INTO uslugi VALUES (j, u , 1, dt2+k, 'd');
  38. IF sq>2 then
  39. INSERT INTO uslugi VALUES (j, u , 2, dt2+2*k, 'a');
  40. end IF;
  41. end IF;
  42. u:=u+k;
  43. END LOOP;
  44. END LOOP;
  45. COMMIT;
  46. END;
  47. /
Go to the top of the page
+Quote Post

Posty w temacie
- funfel   Zapytania SQL...   21.09.2006, 16:40:55
- - KILIUSZKIN   Tak na szybko (bez sprawdzania) Ad1.) [SQL] pobier...   2.10.2006, 21:27:50


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: 24.08.2025 - 06:34