HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Помогите с Sql запросом
  #1  
Старый 16.05.2008, 09:16
andrey_a87
Участник форума
Регистрация: 02.03.2008
Сообщений: 111
С нами: 9574391

Репутация: 6
По умолчанию Помогите с Sql запросом

SELECT DISTINCT
users.UserLogin,
users.UserPassword,
ppersons.Surname,
ppersons.Name,
ppersons.Fathername,
ppersons.RoadName,
stat_tests.TestID,
courses.HourWeight
FROM
users
INNER JOIN ppersons ON (users.UserLink = ppersons.PPersonID)
INNER JOIN stat_tests ON (users.UserID = stat_tests.UserID)
INNER JOIN courses ON (stat_tests.TestID = courses.CourseID)
WHERE
(stat_tests.StatTestResult >= '0,75')



Есть запрос,он выводит результаты следующим образом
UserLogin UserPassword Surname Name Fathername RoadName TestID HourWeight
administrator 101 Владимирович Сергей Егоров Главная дорога 220 9
administrator 101 Владимирович Сергей Егоров Главная дорога 213 9
administrator 101 Владимирович Сергей Егоров Главная дорога 215 9
administrator 101 Владимирович Сергей Егоров Главная дорога 214 9
administrator 101 Владимирович Сергей Егоров Главная дорога 212 9
administrator 101 Владимирович Сергей Егоров Главная дорога 211 9
administrator 101 Владимирович Сергей Егоров Главная дорога 210 9
administrator 101 Владимирович Сергей Егоров Главная дорога 219 9
USER10 OPAP5N Евгеньевна Галина Мунц КуйбРЦБ 213 9
USER10 OPAP5N Евгеньевна Галина Мунц КуйбРЦБ 211 9
USER10 OPAP5N Евгеньевна Галина Мунц КуйбРЦБ 210 9
USER10 OPAP5N Евгеньевна Галина Мунц КуйбРЦБ 220 9

хотелось бы чтобы он подсчитывал кол-во записей в таблице HourWeight, но если я делаю sum(HourWeight) а потом group by userlogin то он бред выводит...(не правдивые данные)
 
Ответить с цитированием

  #2  
Старый 16.05.2008, 09:27
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,315
С нами: 10248806

Репутация: 2371


По умолчанию

PHP код:
$res mysql_query("SELECT `courses.HourWeight` FROM `users`");
$row mysql_num_rows($res);
echo 
$row 
 
Ответить с цитированием

  #3  
Старый 16.05.2008, 09:30
andrey_a87
Участник форума
Регистрация: 02.03.2008
Сообщений: 111
С нами: 9574391

Репутация: 6
По умолчанию

Вы меня не поняли по средством SQL...хочу чтобы получился ответ

administrator 101 Владимирович Сергей Егоров Главная дорога 72 (т.к. 9*8)
USER10 OPAP5N Евгеньевна Галина Мунц КуйбРЦБ 36 (т.к. 9*4)


а TESTID(наверху) выводится для уникальности записей...

Последний раз редактировалось andrey_a87; 16.05.2008 в 09:36..
 
Ответить с цитированием

  #4  
Старый 16.05.2008, 09:51
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
С нами: 10143686

Репутация: 526
По умолчанию

Цитата:
Сообщение от andrey_a87  
но если я делаю sum(HourWeight) а потом group by userlogin то он бред выводит...(не правдивые данные)
Конечно (он у вас вообще что то выводит?=/ ), потому что в данном случае группировку необходимо провести по всем идентичным полям.
 
Ответить с цитированием

  #5  
Старый 16.05.2008, 09:55
andrey_a87
Участник форума
Регистрация: 02.03.2008
Сообщений: 111
С нами: 9574391

Репутация: 6
По умолчанию

как это можно ещё изобразить? ГОРЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮ ЮЮЮЮЮЮ
 
Ответить с цитированием

  #6  
Старый 16.05.2008, 09:57
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
С нами: 10143686

Репутация: 526
По умолчанию

Цитата:
Сообщение от andrey_a87  
как это можно ещё изобразить? ГОРЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮ ЮЮЮЮЮЮ
Всмысле изобразить?

Если хочешь с группировкой - вот (по понятным причинам не тестировалось)
Код:
SELECT DISTINCT
users.UserLogin,
users.UserPassword,
ppersons.Surname,
ppersons.Name,
ppersons.Fathername,
ppersons.RoadName,
sum(courses.HourWeight)
FROM
users
INNER JOIN ppersons ON (users.UserLink = ppersons.PPersonID)
INNER JOIN stat_tests ON (users.UserID = stat_tests.UserID)
INNER JOIN courses ON (stat_tests.TestID = courses.CourseID)
WHERE
(stat_tests.StatTestResult >= '0,75')
GROUP BY UserLogin, UserPassword, Surname, Name, Fathername, RoadName

Последний раз редактировалось VDShark; 16.05.2008 в 10:00..
 
Ответить с цитированием

  #7  
Старый 16.05.2008, 10:11
andrey_a87
Участник форума
Регистрация: 02.03.2008
Сообщений: 111
С нами: 9574391

Репутация: 6
По умолчанию

Но в таком случае он считает сумму криво. При условии того, что:

administrator 101 Владимирович Сергей Егоров Главная дорога 220 9
administrator 101 Владимирович Сергей Егоров Главная дорога 213 9
administrator 101 Владимирович Сергей Егоров Главная дорога 215 9
administrator 101 Владимирович Сергей Егоров Главная дорога 214 9
administrator 101 Владимирович Сергей Егоров Главная дорога 212 9
administrator 101 Владимирович Сергей Егоров Главная дорога 211 9
administrator 101 Владимирович Сергей Егоров Главная дорога 210 9
administrator 101 Владимирович Сергей Егоров Главная дорога 219 9

9*8=72, он выводит число больше 1000000
 
Ответить с цитированием

  #8  
Старый 16.05.2008, 10:22
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
С нами: 10143686

Репутация: 526
По умолчанию

Тогда скинь что ли структуру участвующих табличек... а то так с утра фантазия плохо работает)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.