Смекни!
smekni.com

Организация базы данных провайдера (стр. 3 из 8)

SELECT *

FROM USLUGI

WHERE type_us = 'tarif'

ORDERBY STOIMOST

SHIFR NAME1 STOIMOST TYPE_US
1 Bezlimit 256 350 tarif
2 Bezlimit 512 500 tarif
3 Bezlimit 768 600 tarif
4 Bezlimit 1024 700 tarif
5 Bezlimit 2048 1200 tarif
6 Bezlimit 10000 10000 tarif

3. Вывести историю оплат заданного пользователя. Например, npi001.

SELECT *

FROM OPLATA

WHERE ID_D = 'npi001'

ID_KARTI DATA_VREMYA SUMMA ID_D
403827 09.12.2010 12:56:58 500 npi001
356813 14.12.2010 22:02:02 100 npi001
81533 16.12.2010 1:02:59 100 npi001
3 03.12.2010 15:48:00 100 npi001
4 04.12.2010 5:02:00 100 npi001
36 04.12.2010 5:03:00 200 npi001
1 03.12.2010 15:47:00 500 npi001
2 03.12.2010 15:47:00 200 npi001

4. Найти карту оплаты с заданным номером и паролем.

SELECT *

FROM KARTA

WHERE NOMER = '1'AND PASSWORD_K = '1'

NOMER SUMMA SOSTOYANIE PASSWORD_K INN
1 500 1 1 7777777777

5. Установить статус заданной карты в состояние использована.

UPDATE KARTA

SET SOSTOYANIE = 1

WHERE NOMER = ‘nomer’ AND PASSWORD_K = 'password'

6. Выбрать договор по заданному номеру.

SELECT *

FROM DOGOVOR

WHERE NOMER = 'npi001'

NOMER DATE2 DATE3 INN ID_U MONEY PASS STATUS
npi001 01.11.2010 30.04.2013 777777777777 1 1100 npi001 1

7. Обновить значение средств на счету в заданном контракте.

UPDATE DOGOVOR

SET MONEY = '100'

WHERE NOMER = 'npi001'

8. Добавить нового пользователя.

INSERT INTO USERI VALUES(14,2345,'Ф. И. О.','Бомж','1234567')

9. Выбрать все номера договоров упорядочив по возрастанию.

SELECT NOMER

FROM DOGOVOR

ORDER BY NOMER

npi001
npi002
npi003
npi004
npi005
npi006
npi007
npi008
npi009
npi010
npi011
npi012
npi013

10. Выдать информацию о пользователе, включая информацию по договору.

SELECT *

FROM USERI,DOGOVOR

WHERE USERI.ID = DOGOVOR.ID_U AND DOGOVOR.NOMER = 'npi001’

TELEPHONE NOMER DATE2 DATE3 INN ID_U MONEY PASS ST
89518477875 npi001 01.11.2010 30.04.2013 77777777 1 04.01.1903 npi001 1

11. Выдать список услуг с количеством клиентов, которые подключены здесь.

NAME1 NUMBER
Bezlimit 1024 2
Bezlimit 2048 2
Bezlimit 256 3
Bezlimit 768 3
Bezlimit 512 3
limit 13

12. Какая услуга ни разу не использована?

SELECT SHIFR, NAME1

FROM USLUGI d1

WHERENOTEXISTS (

SELECT USLUGI.SHIFR

FROM USLUGA_DOGOVOR, USLUGI

WHERE d1.SHIFR = USLUGA_DOGOVOR.SHIFR)

SHIFR NAME1
06.01.1900 Bezlimit 10000

13. Какая прибыль в этом месяце?

SELECTSUM(MONEY) AS "Profit"

FROM DEBIT

WHERE TO_CHAR(TIME1, 'mm.yyyy') = TO_CHAR(sysdate, 'mm.yyyy')

Результат запроса: 1260.

14. Максимальное число байт принято от куда?

SELECT TIME1, WITH_ADRESS, WITH_PORT, BAIT, ip.nomer

FROM IP

WHERE BAIT = (SELECT MAX(BAIT)

FROM IP

WHERE IP.WITH_INTERFASE = 5)

TIME1 WITH_ADRESS WITH_PORT BAIT NOMER
21-NOV-10 10.56.00 188.134.7.73 30128 95655656 npi007

15. Выдать полную информацию о клиентах.

SELECT d1.NOMER, d1.money, d4.name1, d1.DATE2, d1.DATE3, d2.fio,

d2.pasport, d2.registration, d2.telephone

FROM DOGOVOR d1, USERI d2 , USLUGA_DOGOVOR d3, USLUGI d4

WHERE (d1.id_u = d2.id) AND d3.nomer = d1.nomer

AND d4.shifr = d3.shifr AND d4.type_us = 'tarif'

NOMER MO NAME1 DATE2 DATE3 FIO PASPOR REGISTRATI TELEPHONE
npi013 0 Bezlimit 512 17.12.2010 17.12.2011 sdg 235456 dhdfe4 3245
npi001 1100 Bezlimit 256 01.11.2010 30.04.2013 Ivanov Ivan Ivanovich 705631 Troickaya 9 89518477875
npi002 0 Bezlimit 256 23.11.2010 23.11.2012 Zlatous Eduard Petrovich 7056316 Troickaya 88 89518477872
npi003 0 Bezlimit 512 23.11.2010 28.07.2012 Veri Big Evil 70563162 Troickaya 77 89518477873
npi004 0 Bezlimit 768 23.11.2010 17.02.2012 Sv Lol 70563163 Troickaya 12 89518477877
npi005 0 Bezlimit 1024 02.11.2010 22.10.2011 Buga ga ga 70563164 Troickaya 33 89518477877
npi006 0 Bezlimit 2048 25.11.2010 28.07.2012 F I O 70563165 Engelsa 88 89518477875
npi007 0 Bezlimit 768 11.11.2010 28.07.2012 Adolf Gitler 70563166 AD 666/2 89518477871
npi008 0 Bezlimit 1024 09.11.2010 28.07.2012 Ktylxy 70563167 Engelsa 66 89518477879
npi009 0 Bezlimit 512 04.11.2010 28.07.2012 Chikotilo 70563167 AD 666/1 89518477810
npi010 0 Bezlimit 2048 16.11.2010 28.07.2012 Vladimir Vladimirovich Purin 70563321 Rai 777 89518477812
npi011 0 Bezlimit 256 06.12.2010 06.12.2011 Spanch Bob 123123 Dno Okeana 1234578
npi012 0 Bezlimit 768 06.12.2010 06.12.2011 sdjfhgsdf 123112 sfsdfsdf 1231231

16. Вывести отчет о списании средств с абонента

SELECT *

FROM DEBIT

WHERE ID_D = 'npi001 ’

TIME1 MONEY WHY ID_D
23.12.2010 10 xz npi001
23.12.2010 50 usluga npi001
31.12.2010 100 tarif npi001

17. Сколько и на какие порты принималась информация в сумме?

WITH_PORT Trafic Mb
20.03.1900 2184,57486820221
04.05.2024 1826,659935
26.06.1982 1188,77274
5892 1152,239972
41178 746,3213768
61468 613,3521423
63499 554,7282238
61655 465,7722521
49977 400,795764
25090 394,2087393
20541 337,046443
35123 306,5121174
56160 294,1754141
24978 281,4205179
52618 232,6606636
17439 216,7222147
36701 208,5684862
18858 207,517004
17355 199,2175474
46021 169,297472
40140 168,2296801
35691 167,8863907
54613 139,9933538
38787 131,4555883
38512 127,1801758
64503 113,3399925
61000 103,9505711
33713 102,8360825
37099 89,22577858
24293 88,4114399

18. Какой договор истекает в текущем месяце?

SELECT d1.NOMER, d1.DATE2, d1.DATE3, d2.fio, d2.pasport,d2.registration, d2.telephone

FROM DOGOVOR d1, USERI d2

WHERE d1.id_u = d2.id AND (MONTHS_BETWEEN(sysdate, date3) < 0) AND ( MONTHS_BETWEEN(sysdate, date3) > -1)

NOMER DATE2 DATE3 FIO PASPORT REGISTRATION TELEPHONE
npi013 17.12.2010 27.12.2010 sdg 235456 dhdfe4 3245

19. Какой договор уже истек?

SELECT d1.NOMER, d1.DATE2, d1.DATE3, d2.fio, d2.pasport,d2.registration, d2.telephone

FROM DOGOVOR d1, USERI d2

WHERE (d1.id_u = d2.id) AND (MONTHS_BETWEEN(date3, sysdate) < 0)

NOMER DATE2 DATE3 FIO PASPORT REGISTRATION TELEPHONE
npi012 06.12.2009 09.12.2010 sdjfhgsdf 123112 sfsdfsdf 1231231

20. От куда и во сколько принималась информация?

SELECT *

FROM "IP"

WHERE with_interfase=5

TIME1 WITH_ADRES W_P ON_ADRESS O_P BAIT NOMER
16-NOV-10 01.53. 205.188.8.238 443 109.106.195.31 7872 40 npi001
16-NOV-10 01.54. 195.239.111.21 5222 109.106.195.31 7883 280 npi001
16-NOV-10 01.54. 205.188.8.238 443 109.106.195.31 7872 40 npi001
16-NOV-10 01.55. 65.55.158.118 3544 109.106.195.31 58497 137 npi001
16-NOV-10 01.53. 109.234.153.37 5222 109.106.195.31 7881 190 npi001
16-NOV-10 01.54. 195.49.206.219 55928 109.106.195.31 44758 768 npi001
16-NOV-10 01.54. 95.139.188.235 26871 109.106.195.31 44758 116 npi001
16-NOV-10 01.54. 65.55.158.118 3544 109.106.195.31 58497 137 npi001
16-NOV-10 01.54. 195.49.206.219 63698 109.106.195.31 44758 96 npi001
16-NOV-10 01.54. 109.234.153.37 5222 109.106.195.31 7881 280 npi001
16-NOV-10 01.55. 205.188.8.238 443 109.106.195.31 7872 40 npi001
16-NOV-10 01.55. 195.239.111.21 5222 109.106.195.31 7883 400 npi001
16-NOV-10 01.55. 65.55.158.118 3544 109.106.195.31 58497 137 npi001
16-NOV-10 01.55. 77.37.171.143 64200 109.106.195.31 44758 116 npi001
16-NOV-10 01.56. 95.139.188.235 27309 109.106.195.31 44758 152 npi001
16-NOV-10 01.56. 195.239.111.21 5222 109.106.195.31 7883 320 npi001
16-NOV-10 01.55. 95.139.188.235 26871 109.106.195.31 44758 116 npi001
16-NOV-10 01.56. 91.209.196.174 80 109.106.195.31 7930 140885 npi001

21. Сколько пользователи скачали?

SELECT NOMER, SUM(BAIT)/(1024*1024) AS "Trafic"

FROM "IP"

WHERE IP.WITH_INTERFASE = 5

GROUPBY NOMER

ORDERBY NOMER

NOMER Trafic
npi001 23.03.1900
npi002 38,4699297
npi003 17,7961731
npi004 1215,42658
npi005 84,3097162
npi006 1054,26295
npi007 2785,73673
npi008 9488,6638
npi009 472,377748
npi010 321,522787

22. Какой клиент принес больше всего прибыли?

SELECT *

FROM (SELECTSUM(SUMMA) AS "MONEY", id_d

FROM OPLATA

GROUPBY ID_D

ORDERBY1/MONEY) d

WHERE MONEY = (SELECTMAX(SUM(SUMMA))

FROM OPLATA

GROUPBY ID_D

)

MONEY ID_D
1800 npi001

23. Какие клиенты еще не принесли прибыли?

SELECT NOMER, FIO

FROM DOGOVOR INNERJOIN USERI ON DOGOVOR.ID_U = USERI.ID

WHERE NOMER notin

(SELECT id_d

FROM OPLATA

GROUPBY ID_D)

NOMER FIO
npi013 sdg
npi011 Spanch Bob
npi012 sdjfhgsdf

24. Какая услуга подключена у каждого пользователя?