Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
xenix
автор
Мне остались этот и тот вопрос выше и всё

а потом ты отсюда исчезнешь навсегда?

как только, так сразу
20 май 17, 23:23    [20498869]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
Сид
Member

Откуда: Москва
Сообщений: 305
fantanol
alexeyvg
пропущено...
Я вам говорил про запрос "Вакансии"
Вот нужно сделать триггеры на таблицы Штатное_расписание и Сотрудник, и проверять там, что бы количество вакантных мест не было отрицательным
Не то чтобы отрицательное. А допустим 2 начальника на отдел. 1 зам на отдел

А ничего, что на отдел может быть 2 зама, и это нормально? У нас в ИТ отделе как раз 2. Плюс ещё момент, который наша система недовузовского образования не учла - когда сотрудница уходит в декрет, на её ставку на время отпуска по уходу сажают другого человека.
Да и вообще руководству, а не разработчику ПО виднее, сколько и каких ставок должно быть. Это всё утверждается в штатном расписании, а дальше уже в его рамках сажаются люди на ставки.
Про отпуск - ограничение 21 день просто фееричное, я лично в прошлом году уходил на 28.
Странно, что для дипломной работы задача выглядит настолько отдалённо от реальности.
21 май 17, 15:42    [20499436]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
londinium
Member

Откуда: Киев
Сообщений: 1138
Не то чтобы отрицательное. А допустим 2 начальника на отдел. 1 зам на отдел

интересно про двух начальников одного отдела. Это как два капитана на корабле
21 май 17, 20:06    [20499660]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
Сид
fantanol
пропущено...
Не то чтобы отрицательное. А допустим 2 начальника на отдел. 1 зам на отдел

А ничего, что на отдел может быть 2 зама, и это нормально? У нас в ИТ отделе как раз 2. Плюс ещё момент, который наша система недовузовского образования не учла - когда сотрудница уходит в декрет, на её ставку на время отпуска по уходу сажают другого человека.
Да и вообще руководству, а не разработчику ПО виднее, сколько и каких ставок должно быть. Это всё утверждается в штатном расписании, а дальше уже в его рамках сажаются люди на ставки.
Про отпуск - ограничение 21 день просто фееричное, я лично в прошлом году уходил на 28.
Странно, что для дипломной работы задача выглядит настолько отдалённо от реальности.

Про отпуск я тогда для примера написал.
Так же и с начальниками.
В любом случае,цифру в ограничениях всегда можно исправить.
Сможете помочь?
21 май 17, 21:13    [20499760]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
Про отпуск я тогда для примера написал.
Так же и с начальниками.
В любом случае,цифру в ограничениях всегда можно исправить.
Сможете помочь?
У вас за это время вариантов не появилось?
Что сложного, сделать "Количество начальников в отделе можно проверить в триггере на Сотрудник, по полям id_Отдел, id_Должность, и оно не должно быть больше 1"?

Начните с запроса, показывающего количество начальников в отделах. Запросик на 3 строки, с GROUP BY и COUNT.
21 май 17, 21:20    [20499772]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
alexeyvg
fantanol
Про отпуск я тогда для примера написал.
Так же и с начальниками.
В любом случае,цифру в ограничениях всегда можно исправить.
Сможете помочь?
У вас за это время вариантов не появилось?
Что сложного, сделать "Количество начальников в отделе можно проверить в триггере на Сотрудник, по полям id_Отдел, id_Должность, и оно не должно быть больше 1"?

Начните с запроса, показывающего количество начальников в отделах. Запросик на 3 строки, с GROUP BY и COUNT.


Как-то так. Только показывает все занятые должности
	 SELECT id_Должность, COUNT(*) AS Занято_мест
      from Сотрудник
        group by id_Должность,id_Отдел
22 май 17, 00:17    [20499963]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
Как-то так. Только показывает все занятые должности
	 SELECT id_Должность, COUNT(*) AS Занято_мест
      from Сотрудник
        group by id_Должность,id_Отдел
А нужно что? Получить количество начальников в отделах
SELECT id_Отдел, COUNT(*) AS Занято_мест
from Сотрудник
where id_Должность = <ИД начальника отдела>
group by id_Отдел

И потом используем этот запрос в проверке в триггере:
IF EXISTS(
    SELECT id_Отдел, COUNT(*) AS Занято_мест
    from Сотрудник
    where id_Должность = <ИД начальника отдела>
    group by id_Отдел
    having COUNT(*) > 1
)

PRINT 'АШИПКА!'
22 май 17, 10:28    [20500522]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
alexeyvg
fantanol
Как-то так. Только показывает все занятые должности
	 SELECT id_Должность, COUNT(*) AS Занято_мест
      from Сотрудник
        group by id_Должность,id_Отдел
А нужно что? Получить количество начальников в отделах
SELECT id_Отдел, COUNT(*) AS Занято_мест
from Сотрудник
where id_Должность = <ИД начальника отдела>
group by id_Отдел

И потом используем этот запрос в проверке в триггере:
IF EXISTS(
    SELECT id_Отдел, COUNT(*) AS Занято_мест
    from Сотрудник
    where id_Должность = <ИД начальника отдела>
    group by id_Отдел
    having COUNT(*) > 1
)

PRINT 'АШИПКА!'

В чем проблема?

К сообщению приложен файл. Размер - 9Kb
22 май 17, 12:59    [20501098]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
londinium
Member

Откуда: Киев
Сообщений: 1138
fantanol,

автор
В чем проблема?

скобки EXISTS не закрыты, синтаксис <> MS SQL Server не известен
22 май 17, 13:05    [20501113]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
londinium
fantanol,

автор
В чем проблема?

скобки EXISTS не закрыты, синтаксис <> MS SQL Server не известен


Сделал так. Ошибок нет,но и результата тоже нет. Как можно указать ИД?

where id_Должность = <ИД начальника отдела>


create TRIGGER otdel ON Сотрудник 
after insert 
AS    
begin
IF EXISTS(
    SELECT id_Отдел, COUNT(*) AS Занято_мест
    from Сотрудник
    where id_Должность = id_Отдел
    group by id_Отдел
    having COUNT(*) > 1)
	RAISERROR (N'Количество начальников превысило допустимое число',16,1);
return;
end;
GO
22 май 17, 13:22    [20501156]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
Сделал так. Ошибок нет,но и результата тоже нет. Как можно указать ИД?
where id_Должность = <ИД начальника отдела>


where id_Должность = id_Отдел


Эээ, откуда id_Должность = id_Отдел???

Нужно посмотреть, какой идентификатор соответствует должности "начальник отдела" в таблице Должность
И подставить его вместо <ИД начальника отдела>

Например, where id_Должность = 123321
22 май 17, 13:32    [20501192]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
alexeyvg
fantanol
Сделал так. Ошибок нет,но и результата тоже нет. Как можно указать ИД?
where id_Должность = <ИД начальника отдела>


where id_Должность = id_Отдел


Эээ, откуда id_Должность = id_Отдел???

Нужно посмотреть, какой идентификатор соответствует должности "начальник отдела" в таблице Должность
И подставить его вместо <ИД начальника отдела>

Например, where id_Должность = 123321

Подставил id. Про прошло

Только вот теперь вообще непонятно каким боком тут на продавца ругается :/

К сообщению приложен файл. Размер - 50Kb
22 май 17, 20:48    [20502498]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
Xenix
Guest
Ай, и не говори: загадка на загадке. Не знает Sql Server, как преобразовать "продавца первой категории в число", помощи твоей просит
22 май 17, 23:41    [20502821]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
Xenix
Ай, и не говори: загадка на загадке. Не знает Sql Server, как преобразовать "продавца первой категории в число", помощи твоей просит


Только вот я добавляю совсем другие данные
22 май 17, 23:54    [20502839]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
Только вот теперь вообще непонятно каким боком тут на продавца ругается :/
Про это я вам уже писал, повторю в пятый раз - если делать плохо, то это будет очень долго.
У вас невообразимый подход к типам данных, полям, таблицам.

Что у вас, например, в поле id_Должность? В таблице это bigint, а на экране у вас какие то названия?
Вот у вас где то и путаница, сравниваете число со строкой.

Нужно всё это просмотреть и поправить, и не путать "название" и "идентификатор".
22 май 17, 23:54    [20502840]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
Xenix
Ай, и не говори: загадка на загадке. Не знает Sql Server, как преобразовать "продавца первой категории в число", помощи твоей просит

Только вот я добавляю совсем другие данные
Какие же данные вы добавляете? В id_Должность, которое есть целое число, вы вводите "продавец первой категории"?
22 май 17, 23:55    [20502843]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
alexeyvg
fantanol
Только вот теперь вообще непонятно каким боком тут на продавца ругается :/
Про это я вам уже писал, повторю в пятый раз - если делать плохо, то это будет очень долго.
У вас невообразимый подход к типам данных, полям, таблицам.

Что у вас, например, в поле id_Должность? В таблице это bigint, а на экране у вас какие то названия?
Вот у вас где то и путаница, сравниваете число со строкой.

Нужно всё это просмотреть и поправить, и не путать "название" и "идентификатор".


К сообщению приложен файл. Размер - 8Kb
23 май 17, 00:00    [20502848]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
alexeyvg
fantanol
пропущено...

Только вот я добавляю совсем другие данные
Какие же данные вы добавляете? В id_Должность, которое есть целое число, вы вводите "продавец первой категории"?

Если говорить про таблицу сотрудник,то да. Там стоят названия,а не цифры.
23 май 17, 00:04    [20502851]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
Я не особо понял суть. Но может это поможет?

+cast( as varchar) ?
23 май 17, 00:29    [20502882]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
alexeyvg
пропущено...
Какие же данные вы добавляете? В id_Должность, которое есть целое число, вы вводите "продавец первой категории"?

Если говорить про таблицу сотрудник,то да. Там стоят названия,а не цифры.
Ну да, в таблице сотрудник в поле id_Должность стоит название, и это поле ссылается на поле id_Должность в таблице Должность, в котором записано число - идентификатор должности.

Вы вообще зачем сделали поля-идентификаторы, например, id_Должность? Вы их как хотите использовать?
Вдумайтесь, зачем вообще нужна таблица Должность, если вы просто в Сотруднике пишите названия должностей?
Или таблица Отдел, с ней то же самое, вы вообще зачем её сделали?
23 май 17, 15:28    [20504658]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
Я не особо понял суть. Но может это поможет?

+cast( as varchar) ?
Нет.
23 май 17, 15:29    [20504659]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
alexeyvg
fantanol
Я не особо понял суть. Но может это поможет?

+cast( as varchar) ?
Нет.
То есть, раз при сравнении 'Начальник отдела' = 1 возникает ошибка, то нужно просто написать 'Начальник отдела' = cast(1 as varchar), и всё будет в порядке???
23 май 17, 15:30    [20504664]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
fantanol
Member

Откуда:
Сообщений: 191
alexeyvg
fantanol
пропущено...

Если говорить про таблицу сотрудник,то да. Там стоят названия,а не цифры.
Ну да, в таблице сотрудник в поле id_Должность стоит название, и это поле ссылается на поле id_Должность в таблице Должность, в котором записано число - идентификатор должности.

Вы вообще зачем сделали поля-идентификаторы, например, id_Должность? Вы их как хотите использовать?
Вдумайтесь, зачем вообще нужна таблица Должность, если вы просто в Сотруднике пишите названия должностей?
Или таблица Отдел, с ней то же самое, вы вообще зачем её сделали?


На форме есть combobox с подключенными таблицами. И при заполнении сотрудника,я вытаскиваю данные из других таблиц
23 май 17, 15:32    [20504668]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol,
Повторю свой первый ответ:
alexeyvg
А, так вам нужно спроектировать модель данных для этого?

С этого и надо начать, а не с "расчётов".

Задавайте вопрос в разделе "Проектирование", и, видимо, нужно будет рассказать немножко подробнее.

alexeyvg
fantanol
Да знаю я это,мне сейчас важно сделать расчеты.
Поверьте, если сразу делать неправильно, то это не экономит время, а отнимает его.
23 май 17, 15:32    [20504670]     Ответить | Цитировать Сообщить модератору
 Re: Запросы на подсчет должностей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30768
fantanol
На форме есть combobox с подключенными таблицами. И при заполнении сотрудника,я вытаскиваю данные из других таблиц
Вы вытаскиваете из справочников идентификаторы и названия, но в таблицу Сотрудник суёте почему то названия, а не идентификаторы, хотя имя поля недвусмысленно указывает, что это неправильно.
23 май 17, 15:34    [20504677]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить