MySQL stavki
 
bobo05 15. jan 2012 21:52:46 Pridružen od:
8. dec 2009
2553 objav
1865 302 37
#1

Na faksu delamo svojo bazo, pa imam malo težave z stavki. Čeprav sem pogledal in prebral že kar nekaj tutorialov, sem še vedno v temi....



Naloga sprašuje, kdo je naredil največ izdelkov na nek dan, to imam v eni tabeli, potem pa bi moglo ven izpisat število izdelkov in ime ter priimek delavca.



Trenutno mam:




SELECT TOP 1 IDdelavec, stevilo

FROM narejeni
izdelki

WHERE narejeniizdelki.IDdan=6;




Kak zdaj vključit še ime? Če dodam pod select:




SELECT TOP 1 IDdelavec, stevilo, Ime, Priimek

FROM narejeni
izdelki, delavci

WHERE narejeniizdelki.IDdan=6




mi izpiše ven vse delavce. Prosim za pomoč,...


všeč(0) ni všeč(0) spam(0)
-sup
 
Tody 15. jan 2012 22:06:12 Pridružen od:
3. maj 2010
1446 objav
1411 299 25
#2

Tale TOP lih ne poznam ampak logika iz oracla ni kej dosti drugačna.



Oracle ima max, tko da izbereš max (stevilo_prodanih), ta ti vrne vrstico kjer je napisana največja številka. če takega polja nimaš moreš najprej narediti count in potem vrjetno kak gnezden stavek :)


všeč(0) ni všeč(0) spam(0)
![](http://www.internetmojster.com/splosno/dobrodelna-akcija.html)
 
Gogy 15. jan 2012 22:43:08 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#3

Nisem si pogledal tole s TOP 1 in nikjer ne vidim omenjenega Oracla :)



Lahko pa mogoče narediš tako (če gre za Oracle)...


SELECT ID_delavec, Ime, Priimek, stevilo
FROM narejeni_izdelki, delavci
WHERE narejeni_izdelki.ID_dan=6
...
and rownum < 2 (za mysql bi dal verjetno čisto na koncu limit 1)
ORDER BY stevilo

Misliš da bi to šlo?


všeč(0) ni všeč(0) spam(0)
 
stesi 16. jan 2012 07:57:14 Pridružen od:
10. mar 2010
279 objav
168 12 8
#4

dobro bi bilo da bi podal shemo tabel


všeč(1) ni všeč(0) spam(0)
 
spelhan 16. jan 2012 08:04:38 Pridružen od:
9. jun 2010
21 objav
14 7 1
#5

Po moje ti pride prav LEFT JOIN

npr:


SELECT TOP 1 ID_delavec, stevilo, delavci.Ime, delavci.Priimek
FROM narejeni_izdelki
WHERE narejeni_izdelki.ID_dan=6
LEFT JOIN delavci
ON narejeni_izdelki.ID_delavec=delavci.ID_delavec
ORDER BY delavci.Priimek
všeč(0) ni všeč(0) spam(0)
 
Tody 16. jan 2012 08:07:17 Pridružen od:
3. maj 2010
1446 objav
1411 299 25
#6

Gogy sej ne odgovarjaš meni :) Napisal je SQL in nimam pojma v katerem okolju :) Tale top se obnaša kot rownum v oraclu, kar pa zna biti zavajajoče razen če res hočeš samo eno vrstico ven. Samo kot opozorilo da se razna izračunavanja naredijo šele po tem ko se lahko sproži rownum...


všeč(0) ni všeč(0) spam(0)
![](http://www.internetmojster.com/splosno/dobrodelna-akcija.html)
 
wickedsheep 16. jan 2012 08:15:09 Pridružen od:
22. jan 2010
20 objav
26 0 0
#7

Izgleda kot MSSQL. Pisem iz glave ...


SELECT TOP 1
d.Ime + ' ' + d.Priimek as name,
SUM(i.stevilo) as amount
FROM narejeni_izdelki i
LEFT JOIN delavci d WITH (NOLOCK) ON d.ID_delavec = i.ID_delavec
WHERE i.ID_dan=6
GROUP BY
d.Ime + ' ' + d.Priimek
ORDER BY
2 DESC
všeč(0) ni všeč(0) spam(0)
ExtJS, Sencha Touch consulting | MySQL, MSSQL, Oracle performance tuning - wickedsheep.si
 
Lucifix 16. jan 2012 08:35:35 Pridružen od:
14. okt 2008
744 objav
438 12 0
#8

MySQL naj ne bi podpiral top stavka, tako da gre verjetno za MS SQL:



SELECT TOP 10 * FROM T MS SQL Server, Sybase ASE, MS Access

SELECT TOP 10 START AT 20 * FROM T Sybase SQL Anywhere (also supports the standard, since version 9.0.1)



http://en.wikipedia.org/wiki/Select_%28SQL%29


všeč(0) ni všeč(0) spam(0)
 
bobo05 16. jan 2012 09:42:53 Pridružen od:
8. dec 2009
2553 objav
1865 302 37
#9

Stavek "TOP 1" je zato, da izpiše samo tistega, ki je naredil največ izdelkov.

LEFT JOIN sem probal in mi vrne ERROR syntax.



Mantra me samo to, ker bi potreboval zraven še ime in priimek delavca ki je zapisan v drugi tabeli. In ko jaz določim, naj še to izpiše, mi izpiše vse delavce in ne samo tistega, ki je naredo največ izdelkov. Če pa ne vključim izpisa imena in priimka, pa funkcija lepo deluje,...


všeč(0) ni všeč(0) spam(0)
-sup
 
wickedsheep 16. jan 2012 10:24:18 Pridružen od:
22. jan 2010
20 objav
26 0 0
#10

Na kateri bazi delas?


všeč(0) ni všeč(0) spam(0)
ExtJS, Sencha Touch consulting | MySQL, MSSQL, Oracle performance tuning - wickedsheep.si
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se