praegune kellaaeg 18.06.2025 23:33:12
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
ufo56
HV Guru

liitunud: 18.11.2004
|
18.12.2008 16:21:16
SQLi päringute tegemine |
|
|
Tervist
Ütlen kohe ära et jah on tegemist koduse tööga millega olen hätta jäänud. Põhimõtteliselt on tegemist tabeliga kus niinimetatud "klientide" andmed, tegemist oleks nagu mobiili arvetega. Nüüd oleks vaja teha mõned päringud millega ma enam hakkama ei saa :S Ma ei taha et keegi mulle midagi ette ära teeks vaid annaks vihjeid asjast. Väga tänulik oleks
Nõuded päringutele
# kasutatakse vähemalt 3 arvulist funktsiooni - 1 või 2
# kasutatakse vähemalt 3 tekstilist funktsiooni - 1 või 2
# kasutatakse vähemalt 3 kuupäevalist funktsiooni - 1 või 2
# kasutatakse grupifunktsioonid (COUNT, MAX, MIN, AVG, SUM ); valida 3 nende seast - 3 päringut
# kasutatakse väis ühendamisega (outer join) -1
# kasutatakse alampäringuid - 2
oracle8:
|
CREATE TABLE emt_kontor_arst112 (kontor_id NUMBER(2) NOT NULL PRIMARY KEY, nimi VARCHAR2(30), aadress VARCHAR2(30), lahtiolekuaeg VARCHAR2(30)); CREATE TABLE teenused_arst112 (teenused_id NUMBER(20) NOT NULL PRIMARY KEY, teenusenimi VARCHAR2(30), teenusehind VARCHAR2(30), garantiikorras VARCHAR2(30), selgitus VARCHAR2(30)); CREATE TABLE arve_arst112 (arve_id NUMBER(20) NOT NULL PRIMARY KEY, koostatud VARCHAR2(30), tähtaeg VARCHAR2(30), summa VARCHAR2(30)); CREATE TABLE klient_arst112 (klient_id NUMBER(20) NOT NULL PRIMARY KEY, eesnimi VARCHAR2(30), perenimi VARCHAR2(30), telefon VARCHAR2(30), mobiil VARCHAR2(30), email VARCHAR2(30), liitunud DATE, lahkunud DATE)); CREATE TABLE laekumine_arst112 (laekumine_id NUMBER(20) NOT NULL PRIMARY KEY, kuupäev VARCHAR2(30), summa VARCHAR2(30)); CREATE TABLE tellimus_arst112 (tellimus_id NUMBER(20) NOT NULL PRIMARY KEY, kontor_id NUMBER(2), teenuse_id NUMBER(2), arve_id NUMBER(20), klient_id NUMBER(20), laekumine_id NUMBER(20)); ALTER TABLE tellimus_arst112 ADD foreign KEY (kontor_id) references emt_kontor_arst112(kontor_id); ALTER TABLE tellimus_arst112 ADD foreign KEY (arve_id) references arve_arst112(arve_id); ALTER TABLE tellimus_arst112 ADD foreign KEY (teenuse_id) references teenused_arst112(teenused_id); ALTER TABLE tellimus_arst112 ADD foreign KEY (klient_id) references klient_arst112(klient_id); ALTER TABLE tellimus_arst112 ADD foreign KEY (laekumine_id) references laekumine_arst112(laekumine_id); INSERT INTO emt_kontor_arst112 (kontor_id, nimi, aadress, lahtiolekuaeg) VALUES (1, 'Võru EMT kontor', 'Vilja 15', '08.00-17.00'); INSERT INTO emt_kontor_arst112 (kontor_id, nimi, aadress, lahtiolekuaeg) VALUES (2, 'Põlva EMT kontor', 'Kase 14', '08.00-17.00'); INSERT INTO emt_kontor_arst112 (kontor_id, nimi, aadress, lahtiolekuaeg) VALUES (3, 'Tartu EMT kontor', 'Võru 24', '08.00-17.00'); INSERT INTO emt_kontor_arst112 (kontor_id, nimi, aadress, lahtiolekuaeg) VALUES (4, 'Narva EMT kontor', 'Järv 9', '08.00-17.00'); INSERT INTO emt_kontor_arst112 (kontor_id, nimi, aadress, lahtiolekuaeg) VALUES (5, 'Talinn EMT kontor', 'Maakri 7', '08.00-17.00'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (2, 'Marko', 'Visnapuu', '5434768', '56789034', 'Marko.Visnapuu@mail.ee', '11.12.2007', '12.09.2008'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (2, 'Meeli', 'Ratas', '54346', '5476345', 'Meeli.Ratas@mail.ee', '21.08.2007', '21.09.2008'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (3, 'Madis', 'Luud', '45346', '5576315', 'Madis@mail.ee', '22.02.2006', '22.09.2007'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (4, 'Teele', 'Luik', '75346', '5276325', 'Teele.luuk@hotmail.com', '11.04.2006', '13.07.2007'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (5, 'Kunnar', 'Kukk', '67346', '5016325', 'Kunnar.Kukk@mail.ee', '10.10.2005', '13.08.2006'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (6, 'Maie', 'Nugis', '87346', '5616353', 'Maie.nugis@mail.ee', '16.10.2006', '13.12.2006'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (7, 'Üllar', 'Kott', '47346', '5816353', 'Ültz@mail.ee', '26.10.2006', '13.12.2008'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (8, 'Kaisa', 'Tee', '37346', '5819873', 'Kaisa.road@mail.ee', '11.10.2006', '21.09.2008'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (9, 'Ants', 'Lumi', '67346', '5868873', 'Ants.lumi@mail.ee', '23.07.2007', '27.09.2008'); INSERT INTO klient_arst112 (klient_id, eesnimi, perenimi, telefon, mobiil, email, liitunud, lahkunud) VALUES (10, 'Maria', 'Jooks', '57346', '5860973', 'Maria@mail.ee', '21.07.2007', '26.09.2007'); INSERT INTO teenused_arst112 (teenused_id, teenusenimi, teenusehind, garantiikorras, selgitus) VALUES (1, 'Kaardivahetus', '100kr', 'Puudub', 'Sim-kaardi vahetus'); INSERT INTO teenused_arst112 (teenused_id, teenusenimi, teenusehind, garantiikorras, selgitus) VALUES (2, 'Kuuleri puhastus', '150kr', '1 kuu', 'Kuuleri puhastus ja paigaldus'); INSERT INTO teenused_arst112 (teenused_id, teenusenimi, teenusehind, garantiikorras, selgitus) VALUES (3, 'Kuuleri vahetus', '300kr', '6 kuu', 'Kuuleri vahetus ja paigaldus'); INSERT INTO teenused_arst112 (teenused_id, teenusenimi, teenusehind, garantiikorras, selgitus) VALUES (4, 'Display parandus', '600kr', '12kuu', 'Display parandus'); INSERT INTO teenused_arst112 (teenused_id, teenusenimi, teenusehind, garantiikorras, selgitus) VALUES (5, 'Emaplaadi vahetus', '700-2000kr', '24kuu', 'Emaplaadi vahetus'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (1, '12.12.2007', '12.01.2008', '100 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (2, '13.12.2007', '13.01.2008', '150 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (3, '14.12.2007', '14.01.2008', '300 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (4, '15.12.2007', '15.01.2008', '600 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (5, '16.12.2007', '16.01.2008', '700 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (6, '21.12.2007', '21.01.2008', '100 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (7, '22.12.2007', '22.01.2008', '150 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (8, '23.12.2007', '23.01.2008', '300 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (9, '24.12.2007', '24.01.2008', '600 kr'); INSERT INTO arve_arst112 (arve_id, koostatud, tähtaeg, summa) VALUES (10, '29.12.2007', '29.01.2008', '2000 kr'); INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (1, '12.01.2008', '100 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (2, '13.01.2008', '150 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (3, '14.01.2008', '300 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (4, '15.01.2008', '600 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (5, '16.01.2008', '700 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (6, '21.01.2008', '100 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (7, '22.01.2008', '150 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (8, '23.01.2008', '300 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (9, '24.01.2008', '600 kr') INSERT INTO laekumine_arst112 (laekumine_id, kuupäev, summa) VALUES (10, '29.01.2008', '2000 kr')
|
_________________
Lae pildid -> pilt.io |
|
Kommentaarid: 78 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
67 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
18.12.2008 16:30:18
|
|
|
Kes siis rahalised summad stringina salvestab
Samuti oleks kena kui kõik kuupäevalised väljad oleks ka vastavas tüübis, jääks mõttetu string to date muutmine pidevalt ära ja saaks pigem kasutada date to format funktsioone et andmebaasist kohe sobivas formaadis väljutada kuupäev/aeg.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
ufo56
HV Guru

liitunud: 18.11.2004
|
18.12.2008 16:46:06
|
|
|
Hmm kuidas ma selle summa peaks siis salvestama?
Ja kahjuks kuupäeva kohta ei oska ka midagi öelda mis tal viga peaks nüüd olema :S
_________________
Lae pildid -> pilt.io |
|
Kommentaarid: 78 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
67 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
18.12.2008 17:31:42
|
|
|
teenusehind võiks olla NUMBER, tähtaeg DATE,
samuti summale ei ole mõtet lisada juurde tähist 'kr'.
garantiikorras võiks olla ka DATE
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
ufo56
HV Guru

liitunud: 18.11.2004
|
18.12.2008 17:47:21
|
|
|
Nii parandatud
aga äkki keegi jutustab nendest päringutest ka midagi hullult oleks abi
_________________
Lae pildid -> pilt.io |
|
Kommentaarid: 78 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
67 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
18.12.2008 17:50:16
|
|
|
laekumine tabel on suht kahtlane, need väljad saaks lisada arve_arst112 tabelisse. läheks vaja 2 välja juurde, üks NUMBER(1), makstud korral 1, muidu 0, ja teine väli maksmise kuupäev.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
18.12.2008 17:51:43
|
|
|
Aga kui klient kahes osas tasub ?
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
ufo56
HV Guru

liitunud: 18.11.2004
|
18.12.2008 17:53:27
|
|
|
ok ok mikk kle see on mingi lambist koolitöö mida homseks vaja sellepeale ei ole mõeldud. Ma usun et te olete selles pro'd aga mina pole, võimalikult lihtsalt ära teha vaja
_________________
Lae pildid -> pilt.io
viimati muutis ufo56 18.12.2008 17:54:25, muudetud 1 kord |
|
Kommentaarid: 78 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
67 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
18.12.2008 17:54:14
|
|
|
mikk36 kirjutas: |
Aga kui klient kahes osas tasub ? |
sellisel juhul läheb jah natuke keerulisemaks. Kuid tasumise kohta eraldi tabelit ei ole minuarust mõtet teha.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
18.12.2008 17:54:55
|
|
|
ufo56, mõtle mis infot sa saada tahaks andmebaasist, küll siis ka queryd tulevad.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
ufo56
HV Guru

liitunud: 18.11.2004
|
18.12.2008 17:56:19
|
|
|
Vaata häda ongi et mu hallis ajus ei ütle need sõnad eriti midagi
# kasutatakse vähemalt 3 arvulist funktsiooni - 1 või 2
# kasutatakse vähemalt 3 tekstilist funktsiooni - 1 või 2
# kasutatakse vähemalt 3 kuupäevalist funktsiooni - 1 või 2
# kasutatakse grupifunktsioonid (COUNT, MAX, MIN, AVG, SUM ); valida 3 nende seast - 3 päringut
# kasutatakse väis ühendamisega (outer join) -1
# kasutatakse alampäringuid - 2
_________________
Lae pildid -> pilt.io |
|
Kommentaarid: 78 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
67 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
18.12.2008 18:01:09
|
|
|
huvitavad definitsioonid, arvuline ja tekstiline funktioon
arvuline midagi sellist? (select * from arve_arst112 where summa > 200) ?
tekstiline (select * from klient_arst112 where lower(nimi) like '%jaan%') ?
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
ufo56
HV Guru

liitunud: 18.11.2004
|
18.12.2008 18:09:19
|
|
|
definitsioonides ongi asi, kurat ei tea mida ta mõtleb. Eks midagi mõtlen vast välja
_________________
Lae pildid -> pilt.io |
|
Kommentaarid: 78 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
67 |
|
tagasi üles |
|
 |
gynterk
HV kasutaja
liitunud: 17.01.2004
|
20.12.2008 16:34:16
|
|
|
Minu teada ei ole SQL-is ühtegi funktsiooni, mille nimeks oleksid arvud. Palu õppejõul/õpetajal endal selgeks teha SQL-i baasteadmised või õppida paremini tõlkima/seletama. Kui õpetaja mõtleb nii nagu oicu, siis korrektsed seletused oleksid nt et kasutatakse vähemalt kolme päringut, mille tingimused on määratud arvudena (numeric) või kasutatakse vähemalt kolme päringut, mille tingimused on määratud tekstilisena (string) jne kuupäev (date) jne. Mis asi on alampäring? Inner Join?
Teine võimalus on see, et õppejõud mõtleb tekstiliste funktsioonide all funktsioone ucase(), lcase(), mid() [skalaarsed] jne ja arvuliste funktsioonide all matemaatilisi tehteid/funktsioone või koondfunktsioone [min(), max(), avg() jne], kuigi viimased on eraldi välja toodud, kui grupifunktsioonid. Kuupäevafunktsioonid on näiteks date(), now(), curdate(), curtime() jne.
viimati muutis gynterk 20.12.2008 16:51:12, muudetud 2 korda |
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
lauri
HV veteran

liitunud: 05.11.2001
|
20.12.2008 16:39:21
|
|
|
gynterk kirjutas: |
Mis asi on alampäring? Inner Join?
|
alampäring on midagi sellist:
SELECT * FROM table1 WHERE blaah IN (SELECT blaah FROM table2 WHERE kuupaev='2008-12-20') |
inner join ei ole alampäring, JOIN on kasutusel tabelite ühendamise mingisuguse tunnus(t)e alusel.
_________________ The sh*t has hit the fan. |
|
Kommentaarid: 90 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
80 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
gynterk
HV kasutaja
liitunud: 17.01.2004
|
20.12.2008 16:43:52
|
|
|
Yeh, sorry. Kirjutasin niikuinii SQL-ist üldiselt. Alguses mainitud MySQL oli lihtsalt valesti pandud.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
lauri
HV veteran

liitunud: 05.11.2001
|
20.12.2008 16:44:47
|
|
|
erilist vahet ei ole. SQL on SQL.
erinevused on minimaalsed.
_________________ The sh*t has hit the fan. |
|
Kommentaarid: 90 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
80 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
gynterk
HV kasutaja
liitunud: 17.01.2004
|
20.12.2008 16:52:13
|
|
|
Ma ei rääkinud sihtgrupist vaid konkreetsetest funktsioonidest, mille nimed on arvulised st arvulised funktsioonid nt 12345(). Võid arvata, et see on tähenärimine, aga nii ma sellest aru sain. Matemaatiliste tehete all mõtlesin ka tegelikult matemaatilisi funktsioone, aga väljendasin ennast valesti. Parandasin antud vead OK aitab, läheb liiga OT-ks ära. Nüüdseks peaks teema algatajal piisavalt juba inffi olema, mida võiks päringutesse kirjutada.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
20.12.2008 17:06:00
|
|
|
Nüüdseks peaks olema teema ammu ammendanud ennast kuna eile hommikul kukkuks juba tähtaeg
Muide kas on üldse ühtegi funktsiooni, kus on number esimene ?
Kas mitte ei olnud suht üleüldine common rule et isegi muutujate nimedes ei või number esimene täht olla ? (Kõikide programmeerimiskeelte suhtes siis)
Et kui oskad mõnest keelest tuua mõne näite, kus funktsioon algab numbriga, siis oleks kena.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
20.12.2008 18:05:38
|
|
|
mikk36 kirjutas: |
Muide kas on üldse ühtegi funktsiooni, kus on number esimene ?
Kas mitte ei olnud suht üleüldine common rule et isegi muutujate nimedes ei või number esimene täht olla ? (Kõikide programmeerimiskeelte suhtes siis) |
minu arust ei ole number funktsiooni nime alguses lubatud. Tohib alata kas tähe või mingi special sümboliga.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
mirko28
Aeg maha 1p

liitunud: 31.12.2003
|
24.04.2009 20:25:17
|
|
|
oicu kirjutas: |
minu arust ei ole number funktsiooni nime alguses lubatud. |
Korrektne. enamikes gramamtikas nii.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
tooner
HV vaatleja
liitunud: 07.05.2009
|
08.05.2009 21:56:23
|
|
|
Mis te nüüd sogate... "arvulised funktsioonid" tõlkub suht otseselt "numeric functions", millele link juba ka anti. S*** tõlge muidugi, aga arusaadav IMHO.
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|