SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 24.01.2010 16:59:30

alekgorn
Участник
Зарегистрирован: 24.01.2010
Сообщений: 5

COUNT ..((((

помогите с запросом голову сломал
есть две таблицы
1. таблица sotrudnik
sotrudnik.id, \\номер
sotrudnik.name, \\Имя
sotrudnik.otchestvo, \\Очество
sotrudnik.family, \\фамилия
sotrudnik.adress, \\адресс
sotrudnik.tel, \\телефон
sotrudnik.otdel, \\отдел
sotrudnik.FIO  \\ имя фамилия очество 

2. таблица zayavka
zayavka.id_zav, \\ номер
zayavka.`date`, \\дата
zayavka.adress, \\адрес
zayavka.tel, \\ телефон
zayavka.name, \\ ФИО заявителя
zayavka.zayavka, \\Текст заявки
zayavka.status, \\Статус
zayavka.otdel, \\Назначеный отдел
zayavka.sotrudnik, \\Назначеный сотрудник (берется из поля sotrudnik.FIO)
zayavka.coment \\Коменарий

нужно сделать запрос, количество sotrudnik.id, где zayavka.sotrudnik равно sotrudnik.FIO
и соответсвоено НЕ равно  ..
Грубо говоря написать сотрудников назначеных на заявки столько то, свободных (неназначеных) столько ..
..
если равно я делаю более менее
SELECT Count(sotrudnik.id)
FROM sotrudnik , zayavka
WHERE sotrudnik.FIO =  zayavka.sotrudnik
то вот не равно не получается
делаю
SELECT Count(sotrudnik.id)
FROM sotrudnik , zayavka
WHERE sotrudnik.FIO <> zayavka.sotrudnik
получаю получаю бред какой то типа 67 ) .. хотя у меня всего 6 сотрудников и 10 заявок  ...
такое ощущение что <> это выводит сумму какую то ... непонимаю
помогите!

Неактивен

 

#2 24.01.2010 22:55:41

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: COUNT ..((((

SELECT Count(z.*)
FROM zayavka z
LEFT JOIN sotrudnik s ON s.FIO = z.sotrudnik
WHERE s.FIO IS NULL

Подумайте о том, чтобы хранить не FIO, а id сотрудника в заявках — это
эффективнее и по памяти, и по скорости.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson