 |
SQL question |
 |
25.05.2005, 10:48
|
#1
|
В бой аргхххххххх!
Join Date: 09 2002
Location: Vik, Medieval Norway
Age: 43
Posts: 1,513
Rep Power: 5
|
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.
|
|
|
25.05.2005, 11:26
|
#2
|
Доктор
Join Date: 07 2004
Location: Moscow
Age: 48
Posts: 1,764
Rep Power: 5
|
"select sellers.name, SUM(sales.price) as prodannie_knigi WHERE sales.id = sallers.id"
По-моему так.
|
|
|
25.05.2005, 11:32
|
#3
|
Академик
Join Date: 01 2002
Location: Shambala
Age: 46
Posts: 7,016
Rep Power: 6
|
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
|
|
|
25.05.2005, 16:53
|
#4
|
Banned
Join Date: 10 2001
Location: ...осень колибри
Age: 45
Posts: 7,487
Rep Power: 0
|
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
|
ну и где здесь сумма расчитывается?
|
|
|
25.05.2005, 17:02
|
#5
|
Banned
Join Date: 10 2001
Location: ...осень колибри
Age: 45
Posts: 7,487
Rep Power: 0
|
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;
|
|
|
25.05.2005, 17:19
|
#6
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
|
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 есть хорошие статьи(учебники) - именно по теории.
|
|
|
25.05.2005, 18:36
|
#7
|
hex god
Join Date: 03 2002
Location: Yerevan, AM
Age: 47
Posts: 3,172
Rep Power: 0
|
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 минут
|
|
|
25.05.2005, 20:14
|
#8
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
|
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?  хм, а интерестно, какой субд такое делает ?
|
|
|
26.05.2005, 04:05
|
#9
|
hex god
Join Date: 03 2002
Location: Yerevan, AM
Age: 47
Posts: 3,172
Rep Power: 0
|
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 минут
|
|
|
26.05.2005, 04:13
|
#10
|
Академик
Join Date: 01 2002
Location: Shambala
Age: 46
Posts: 7,016
Rep Power: 6
|
morcel ei SUM grel 
bayc LEFT JOIN haskacutyun chka
ka INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
u senc
|
|
|
26.05.2005, 04:21
|
#11
|
hex god
Join Date: 03 2002
Location: Yerevan, AM
Age: 47
Posts: 3,172
Rep Power: 0
|
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 минут
|
|
|
26.05.2005, 04:48
|
#12
|
Академик
Join Date: 01 2002
Location: Shambala
Age: 46
Posts: 7,016
Rep Power: 6
|
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
|
|
|
26.05.2005, 09:03
|
#13
|
В бой аргхххххххх!
Join Date: 09 2002
Location: Vik, Medieval Norway
Age: 43
Posts: 1,513
Rep Power: 5
|
Спасибо за исчерпывающие ответы
P.S.
Вот еще бы линк на книжку Дейта
|
|
|
26.05.2005, 13:41
|
#14
|
инсценирующи
Join Date: 07 2002
Location: Fireplace of Ecotopia
Age: 39
Posts: 4,327
Rep Power: 5
|
Quote:
Originally Posted by hov
Спасибо за исчерпывающие ответы
P.S.
Вот еще бы линк на книжку Дейта
|
В электронном варианте, я ее так и не нашел.
__________________
...ибо...
Rgrdz. [ Кселджэн ]
|
|
|
All times are GMT. The time now is 00:36. |
|
|