Forum Webscript.Ru
Программирование => PHP => Тема начата: andy5555 от 08 Февраля 2009, 02:01:31
-
существует две таблицы в mysql
1:
Nomer_Kategorie | Name
1 Avto
2 Produkty
3 Apteka
и вторая
Summa | nommer_kategorie
225 1
45 3
34 1
6 2
56 1
помогите с запросом к базе
мне нужно вывод суммы закупок по категориям по возростанию
например:
Avto 265р
Apteka 45р
Produkty 6р
-
Т.к. вы не дали названия таблиц, то назовем первую таблицу table1, а вторую - table2. Тогда все необходимое вам получаем одним запросом:
SELECT table1.Name, table2.Summa
FROM table1, table2
WHERE table1.Nomer_Kategorie = table2.nomer_kategorie
ORDER BY table2.Summa DESC
-
да, спасибо, но запрос не считает суммы,
например в одной категории было несколько закупок он их не считает а выводит по отдельности
-
Сорри, не внимательно читал вопрос.
Попробуй так:
SELECT table1.Name, SUM(table2.Summa) as Summ
FROM table1, table2
WHERE table1.Nomer_Kategorie = table2.nomer_kategorie
GROUP BY table2.nomer_kategorie
ORDER BY Summ DESC
Я неуверен, правильно ли здесь будет сортировка работать, т.к. GROUP BY тоже сортирует по указанному в нем полю
-
ты супер!
спасибо огромнейшее!!!
-
замечание по 2-й таблице:
желательно добавить уникальное ключевое поле. иначе вы столкнетесь с проблемой при удалении, поиску или изменении необходимой строки
в любом из этих оперций есть условие WHERE, в котором вы указываете, какую строку изменять.
если указать:
WHERE Summa=6, то запрос зацепит не только 4-ю строку, а и все остальные, где сумма будет равна 6
WHERE nommer_kategorie=1 зацепит уже в данном случае 3 строки
добавьте в самом начале поле id:
ALTER TABLE `table2` ADD `id` INT NOT NULL FIRST ;
сделайте его ключевым:
ALTER TABLE `table2` ADD PRIMARY KEY ( `id` ) ;
и сделайте его автоинкрементным (номер id будет назначаться сам, на 1 больше от предыдущего):
ALTER TABLE `table2` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT
-
да так у меня и есть, просто здесь я не стал расписывать всю таблицу,
а запрос этот делал я для графика, хочу потом привезать его к Flash, вернее флэш к пхп, всё-таки на флэше по красивей будет чем графика, ну мне так кажется.
Если чесно признаться то я так и не понял за счет чего произошла сортировка.
И если по алфавиту отсортировать, как это происходит, может по этому есть какой-нить хэлп?
-
ORDER BY Summ DESC
ORDER BY - сортировка
Summ - поле, по которому необходимо сортировать
DESC - по убыванию
andy5555:
есть какой-нить хэлп?
поищи книгу "Понимание SQL"
вроде
здесь (http://www.kodges.ru/14151-ponimanie-sql.html) можно скачать, а здесь (http://www.sql.ru/docs/sql/u_sql/index.shtml) почитать в онлайне
-
Спасибо за ссылки, постараюсь обязательно.