Armenian Knowledge Base  

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

Reply
 
LinkBack Thread Tools
Old 25.05.2005, 11:48   #1
В бой аргхххххххх!
 
hov's Avatar
 
Join Date: 09 2002
Location: Vik, Medieval Norway
Age: 35
Posts: 1,513
Downloads: 12
Uploads: 0
Reputation: 43 | 3
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.
Reply With Quote
Old 25.05.2005, 12:26   #2
Доктор
 
Джанлука's Avatar
 
Join Date: 07 2004
Location: Moscow
Age: 40
Posts: 1,764
Downloads: 0
Uploads: 0
Reputation: 52 | 3
Default

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


По-моему так.
Reply With Quote
Old 25.05.2005, 12:32   #3
Академик
 
Join Date: 01 2002
Location: Shambala
Age: 38
Posts: 7,015
Downloads: 11
Uploads: 0
Reputation: 267 | 5
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/
Reply With Quote
Old 25.05.2005, 17:53   #4
Banned
 
Forever Child's Avatar
 
Join Date: 10 2001
Location: ...осень колибри
Age: 37
Posts: 7,487
Downloads: 0
Uploads: 0
Reputation: 0 | 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
ну и где здесь сумма расчитывается?
Reply With Quote
Old 25.05.2005, 18:02   #5
Banned
 
Forever Child's Avatar
 
Join Date: 10 2001
Location: ...осень колибри
Age: 37
Posts: 7,487
Downloads: 0
Uploads: 0
Reputation: 0 | 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;
Reply With Quote
Old 25.05.2005, 18:19   #6
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 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 есть хорошие статьи(учебники) - именно по теории.
Reply With Quote
Old 25.05.2005, 19:36   #7
hex god
 
Griffon2-7's Avatar
 
Join Date: 03 2002
Location: Yerevan, AM
Age: 39
Posts: 3,172
Downloads: 1
Uploads: 0
Reputation: 9 | 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...
Reply With Quote
Old 25.05.2005, 21:14   #8
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 47
Posts: 3,118
Downloads: 0
Uploads: 0
Reputation: 5 | 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? хм, а интерестно, какой субд такое делает ?
Reply With Quote
Old 26.05.2005, 05:05   #9
hex god
 
Griffon2-7's Avatar
 
Join Date: 03 2002
Location: Yerevan, AM
Age: 39
Posts: 3,172
Downloads: 1
Uploads: 0
Reputation: 9 | 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.
Reply With Quote
Old 26.05.2005, 05:13   #10
Академик
 
Join Date: 01 2002
Location: Shambala
Age: 38
Posts: 7,015
Downloads: 11
Uploads: 0
Reputation: 267 | 5
Default

morcel ei SUM grel
bayc LEFT JOIN haskacutyun chka
ka INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
u senc
Reply With Quote
Old 26.05.2005, 05:21   #11
hex god
 
Griffon2-7's Avatar
 
Join Date: 03 2002
Location: Yerevan, AM
Age: 39
Posts: 3,172
Downloads: 1
Uploads: 0
Reputation: 9 | 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...
Reply With Quote
Old 26.05.2005, 05:48   #12
Академик
 
Join Date: 01 2002
Location: Shambala
Age: 38
Posts: 7,015
Downloads: 11
Uploads: 0
Reputation: 267 | 5
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
Reply With Quote
Old 26.05.2005, 10:03   #13
В бой аргхххххххх!
 
hov's Avatar
 
Join Date: 09 2002
Location: Vik, Medieval Norway
Age: 35
Posts: 1,513
Downloads: 12
Uploads: 0
Reputation: 43 | 3
Default

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

P.S.
Вот еще бы линк на книжку Дейта
Reply With Quote
Old 26.05.2005, 14:41   #14
инсценирующи
 
[ Xelgen ]'s Avatar
 
Join Date: 07 2002
Location: Fireplace of Ecotopia
Age: 31
Posts: 4,327
Downloads: 22
Uploads: 0
Reputation: 193 | 4
Default

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

P.S.
Вот еще бы линк на книжку Дейта
В электронном варианте, я ее так и не нашел.
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 06:43.


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