Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Суммирование значений рядка и сортировка по значению суммы
 
 автор: 1prom   (14.09.2008 в 02:07)   письмо автору
 
 

Запрос:
$sqlp="SELECT Statp.*, regpeople.*,
Statp.Kra
as 'summa'
FROM Statp, regpeople WHERE Statp.Num=regpeople.Num and City = \"$City\" ORDER BY 'summa' DESC";

Работает, а этот нет:

$sqlp="SELECT Statp.*, regpeople.*,
Statp.Kra + Statp.Akt + Statp.Art + Statp.Um
as 'summa'
FROM Statp, regpeople WHERE Statp.Num=regpeople.Num and City = \"$City\" ORDER BY 'summa' DESC";

Kra, Akt, Art, Um - числ. значения

Пожалуйста, подскажите, где подправить

  Ответить  
 
 автор: Trianon   (14.09.2008 в 09:05)   письмо автору
 
   для: 1prom   (14.09.2008 в 02:07)
 

где структуры таблиц? (SHOW CREATE TABLE)

  Ответить  
 
 автор: 1prom   (14.09.2008 в 12:03)   письмо автору
 
   для: Trianon   (14.09.2008 в 09:05)
 

Таблицы Statp, regpeople имеют общее чиловое поле Num

Таблица regpeople содержит чиловое поле Num, текстовое City
Таблица Statp содержит чиловые поля Num, Kra, Akt, Art, Um

Нужно сделать сумму значений Kra, Akt, Art, Um и отсортировать их по убыванию, чтоб вывести примерно так:
Москва 25
Киев 20
Питер 15

  Ответить  
 
 автор: Trianon   (14.09.2008 в 12:10)   письмо автору
 
   для: 1prom   (14.09.2008 в 12:03)
 

Где структура таблиц?
Структура таблиц - это не Ваше устное опипсание, в котором Вы можете наколбасить кучу ошибок.
Это текст оператора создания таблицы.
Текст этот можно получить, издав операторы
SHOW CREATE TABLE Statp;
SHOW CREATE TABLE  regpeople;

Можно также получить дамп структуры в phpMyAdmin (закладка Экспорт)

И второе. Что значит "не работает"?
Какую диагностику возвращает?

  Ответить  
 
 автор: 1prom   (14.09.2008 в 14:05)   письмо автору
 
   для: Trianon   (14.09.2008 в 12:10)
 

Структура таблиц:

CREATE TABLE `regpeople` (
`Num` int(11) default NULL,
`Priz` char(25) default NULL,
`Im` char(25) default NULL,
`Bat` char(25) default NULL,
`Nar` char(15) default NULL,
`Who` char(25) default NULL,
`Wherer` char(15) default NULL,
`City` char(25) default NULL,
`Adr` char(50) default NULL,
`Md` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`Ip` char(20) default NULL,
`obl` int(11) default NULL,
`ray` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `Statp` (
`Num` int(11) default NULL,
`Akku` int(11) default NULL,
`Akt` int(11) default NULL,
`Art` int(11) default NULL,
`Um` int(11) default NULL,
`Us` int(11) default NULL,
`Ver` int(11) default NULL,
`Iz` int(11) default NULL,
`H` int(11) default NULL,
`Gos` int(11) default NULL,
`Dob` int(11) default NULL,
`Dr` int(11) default NULL,
`Em` int(11) default NULL,
`Nt` int(11) default NULL,
`Myd` int(11) default NULL,
`Mj` int(11) default NULL,
`Nj` int(11) default NULL,
`Te` int(11) default NULL,
`Chv` int(11) default NULL,
`Sched` int(11) default NULL,
`Kra` int(11) default NULL,
`Mor` int(11) default NULL,
`Che` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Города выводит как в первом так и во втором варианте, но во втором вариате не могу вытащить значение $summa=$row['summa']; - в итоге не получается сортировка

  Ответить  
 
 автор: Trianon   (14.09.2008 в 14:07)   письмо автору
 
   для: 1prom   (14.09.2008 в 14:05)
 

а если алиас написать как
as `summa`

и ORDER BY аналогично, тогда как?

  Ответить  
 
 автор: 1prom   (14.09.2008 в 14:29)   письмо автору
 
   для: Trianon   (14.09.2008 в 14:07)
 

не пойму, Trianon, Вы изменили только налон кавычек ' на `

Не работает тоже :((

Кстати, а когда плюсую только два значения напр. Statp.Akku + Statp.Akt - сортировка идет и значение получаю

  Ответить  
 
 автор: BinLaden   (14.09.2008 в 14:46)   письмо автору
 
   для: 1prom   (14.09.2008 в 14:29)
 

Покажите итоговый запрос...

  Ответить  
 
 автор: 1prom   (14.09.2008 в 14:49)   письмо автору
 
   для: BinLaden   (14.09.2008 в 14:46)
 

$sqlp="SELECT Statp.*, regpeople.*, 
 Statp.Akku + Statp.Akt + Statp.Art + Statp.Um + Statp.Us + 
Statp.Ver + Statp.Iz + Statp.H + Statp.Gos + Statp.Dob + 
Statp.Dr + Statp.Em + Statp.Nt + Statp.Myd + Statp.Mj + 
Statp.Nj + Statp.Te + Statp.Chv + Statp.Sched + Statp.Kra + 
Statp.Mor
 as `summa`
 FROM Statp, regpeople WHERE Statp.Num=regpeople.Num and 
regpeople.City = \"$City\" and regpeople.obl=$obl and 
regpeople.ray=$ray
 ORDER BY `summa` DESC";

  Ответить  
 
 автор: Trianon   (14.09.2008 в 15:06)   письмо автору
 
   для: 1prom   (14.09.2008 в 14:49)
 

Может у Вас там просто NULL где-то среди ячеек?

  Ответить  
 
 автор: 1prom   (14.09.2008 в 15:10)   письмо автору
 
   для: Trianon   (14.09.2008 в 15:06)
 

Я знал, что Вы у меня это спросите, Да у меня были null, я их устранил... по каждой ячейке...

$sqlalt = "UPDATE $maintable SET Mor = \"0\" WHERE Mor is null";

  Ответить  
 
 автор: Trianon   (14.09.2008 в 15:22)   письмо автору
 
   для: 1prom   (14.09.2008 в 15:10)
 

и как, помогло?

  Ответить  
 
 автор: 1prom   (14.09.2008 в 15:44)   письмо автору
 
   для: Trianon   (14.09.2008 в 15:22)
 

Да, все в параде, спасиб Trianon

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования