Go Back   Armenian Knowledge Base > Technical sections > Webmaster Zone > Web Development

Reply
 
Thread Tools

SQL question
Old 25.05.2005, 10:48   #1
hov
В бой аргхххххххх!
 
hov's Avatar
 
Join Date: 09 2002
Location: Vik, Medieval Norway
Age: 43
Posts: 1,513
Rep Power: 5
Default SQL question

pust imeiutsia 2 tablicy

Code:

1. Sellers

id name sex
1  Katia  f
2  Ania   f
3  Nata   good:)

2. Sales

id  seller_id  book_id   price
1    1              451     100
2    1              452     199
3    2             1247      15
4    1              547       20
Nujno napisat' zapros kotoryi vydast spisok imen prodavcov vmeste s summarnoi stoimostiu prodannyh knig


primer outputa

id name total
1 Katia 219
2 Ania 15
3 Nata 0



P.S.

Prisutstvie v vyvode Naty, kotoraia nichego ne prodala, obiazatel'no.

Old 25.05.2005, 11:26   #2
Доктор
 
Джанлука's Avatar
 
Join Date: 07 2004
Location: Moscow
Age: 48
Posts: 1,764
Rep Power: 5
Default

"select sellers.name, SUM(sales.price) as prodannie_knigi WHERE sales.id = sallers.id"


По-моему так.

Old 25.05.2005, 11:32   #3
Академик
 
Join Date: 01 2002
Location: Shambala
Age: 46
Posts: 7,016
Rep Power: 6
Default

sxala tenc grel, inch imanas inch kani nersum? tarber SUBD eri vra tarber ban klini

yete SQL server a Left outter join gri, yete Oracle a gri bayc nayi zaprosid mej 2 hatic avel chlini voch stabil kashxati

SELECT Sellers.ID, Sellers.Name, Sales.book_id, Sales.price
FROM Sellers LEFT OUTER JOIN
Sales ON Sellers.SalerID = Sales.seller_id

GROUP BY Sellers.ID, Sellers.Name, Sales.book_id, Sales.price
__________________
Ախպեր դու էմիգրացիան տուրիզմի հետ մի խառնի...

http://moskull.livejournal.com/

Old 25.05.2005, 16:53   #4
Banned
 
Forever Child's Avatar
 
Join Date: 10 2001
Location: ...осень колибри
Age: 45
Posts: 7,487
Rep Power: 0
Default

Quote:
Originally Posted by erexa
sxala tenc grel, inch imanas inch kani nersum? tarber SUBD eri vra tarber ban klini

yete SQL server a Left outter join gri, yete Oracle a gri bayc nayi zaprosid mej 2 hatic avel chlini voch stabil kashxati

SELECT Sellers.ID, Sellers.Name, Sales.book_id, Sales.price
FROM Sellers LEFT OUTER JOIN
Sales ON Sellers.SalerID = Sales.seller_id

GROUP BY Sellers.ID, Sellers.Name, Sales.book_id, Sales.price
ну и где здесь сумма расчитывается?

Old 25.05.2005, 17:02   #5
Banned
 
Forever Child's Avatar
 
Join Date: 10 2001
Location: ...осень колибри
Age: 45
Posts: 7,487
Rep Power: 0
Default

SELECT Sellers.id, Sellers.name, Sum(Sales.price) AS TotalSale FROM Sellers LEFT JOIN Sales ON Sellers.id = Sales.seller_id GROUP BY Sellers.id, Sellers.name;

Old 25.05.2005, 17:19   #6
nm
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
Default

Quote:
Originally Posted by Forever Child
SELECT Sellers.id, Sellers.name, Sum(Sales.price) AS TotalSale FROM Sellers LEFT JOIN Sales ON Sellers.id = Sales.seller_id GROUP BY Sellers.id, Sellers.name;
аха, правильно.

2hov: если будешь фильтровать результат - помни.


where делает фильтрацию _до_ JOIN-a
having делает фильтрацию после того, как join выполнился... синтаксис
SELECT ....
FROM .... JOIN ....
WHERE condition
GROUP BY .......
HAVING ........
ORDER BY .......


а ваще если хочешь понять как же оно работает - резко рекомендую РТФМ. Дейт К. Дж. Введение в системы баз данных. на citforum есть хорошие статьи(учебники) - именно по теории.

Old 25.05.2005, 18:36   #7
hex god
 
Griffon2-7's Avatar
 
Join Date: 03 2002
Location: Yerevan, AM
Age: 47
Posts: 3,172
Rep Power: 0
Default

Quote:
Originally Posted by Forever Child
SELECT Sellers.id, Sellers.name, Sum(Sales.price) AS TotalSale FROM Sellers LEFT JOIN Sales ON Sellers.id = Sales.seller_id GROUP BY Sellers.id, Sellers.name;
То, что надо. Правда, есть СУБД, где для seller-а "Ната" такой запрос выкинет не "0", а "NULL"

> erexa

Mi or arit klini 12-13 (arden chem hishum) JOIN-anoc query kgtnem, post kanem stegh...
Informix-i tak lav el stabil ashxatum a, lenqov poqr aghyusakneris cav@ tanem...
__________________
Ленинградское время 0 часов 0 минут

Old 25.05.2005, 20:14   #8
nm
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
Default

Quote:
Originally Posted by Griffon2-7
То, что надо. Правда, есть СУБД, где для seller-а "Ната" такой запрос выкинет не "0", а "NULL"

> erexa

Mi or arit klini 12-13 (arden chem hishum) JOIN-anoc query kgtnem, post kanem stegh...
Informix-i tak lav el stabil ashxatum a, lenqov poqr aghyusakneris cav@ tanem...
sum от столбика null-ов даст null? хм, а интерестно, какой субд такое делает ?

Old 26.05.2005, 04:05   #9
hex god
 
Griffon2-7's Avatar
 
Join Date: 03 2002
Location: Yerevan, AM
Age: 47
Posts: 3,172
Rep Power: 0
Default

Quote:
Originally Posted by nm
sum от столбика null-ов даст null? хм, а интерестно, какой субд такое делает ?
Какой-какой... MS SQL Server На
нем правильно вот так (isnull - MS SQL-овская функция, какая она в других SQL-ах, не знамо):

select sellers.id, sellers.name,
sum(isnull(sales.price,0)) as totalprice
from sellers
left join sales on sellers.id = sales.seller_id
group by sellers.id, sellers.name

Informix насколько я помню не настолько гадок и в сумме вернет нулик, а не нуЛЛик. Но все же проверять помоему стоит, т.к. left join все-таки используется, а не inner join.
__________________
Ленинградское время 0 часов 0 минут

Old 26.05.2005, 04:13   #10
Академик
 
Join Date: 01 2002
Location: Shambala
Age: 46
Posts: 7,016
Rep Power: 6
Default

morcel ei SUM grel
bayc LEFT JOIN haskacutyun chka
ka INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
u senc
__________________
Ախպեր դու էմիգրացիան տուրիզմի հետ մի խառնի...

http://moskull.livejournal.com/

Old 26.05.2005, 04:21   #11
hex god
 
Griffon2-7's Avatar
 
Join Date: 03 2002
Location: Yerevan, AM
Age: 47
Posts: 3,172
Rep Power: 0
Default

Quote:
Originally Posted by erexa
morcel ei SUM grel
bayc LEFT JOIN haskacutyun chka
ka INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
u senc
Vonc LEFT JOIN chka? Esor aravot@ hla kar...
__________________
Ленинградское время 0 часов 0 минут

Old 26.05.2005, 04:48   #12
Академик
 
Join Date: 01 2002
Location: Shambala
Age: 46
Posts: 7,016
Rep Power: 6
Default

Griffon jan yerb du grum es LEFT JOIN MS SQL Serverum ed avtomat kaxvac zaprosic darnuma kam Inner kam Outer
patrza?
porci haamr gri Informix i DB erum LEFT JOIN tes inch kasi
__________________
Ախպեր դու էմիգրացիան տուրիզմի հետ մի խառնի...

http://moskull.livejournal.com/

Old 26.05.2005, 09:03   #13
hov
В бой аргхххххххх!
 
hov's Avatar
 
Join Date: 09 2002
Location: Vik, Medieval Norway
Age: 43
Posts: 1,513
Rep Power: 5
Default

Спасибо за исчерпывающие ответы

P.S.
Вот еще бы линк на книжку Дейта

Old 26.05.2005, 13:41   #14
инсценирующи
 
[ Xelgen ]'s Avatar
 
Join Date: 07 2002
Location: Fireplace of Ecotopia
Age: 39
Posts: 4,327
Rep Power: 5
Default

Quote:
Originally Posted by hov
Спасибо за исчерпывающие ответы

P.S.
Вот еще бы линк на книжку Дейта
В электронном варианте, я ее так и не нашел.
__________________
...ибо...
Rgrdz. [ Кселджэн ]
Reply




Реклама:
реклама
Buy text link .

All times are GMT. The time now is 00:36.
Top

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.