Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 4 [5] 6 вперед Ctrl→ все |
fantanol Member Откуда: Сообщений: 191 |
как только, так сразу |
||||
20 май 17, 23:23 [20498869] Ответить | Цитировать Сообщить модератору |
Сид Member Откуда: Москва Сообщений: 305 |
А ничего, что на отдел может быть 2 зама, и это нормально? У нас в ИТ отделе как раз 2. Плюс ещё момент, который наша система недовузовского образования не учла - когда сотрудница уходит в декрет, на её ставку на время отпуска по уходу сажают другого человека. Да и вообще руководству, а не разработчику ПО виднее, сколько и каких ставок должно быть. Это всё утверждается в штатном расписании, а дальше уже в его рамках сажаются люди на ставки. Про отпуск - ограничение 21 день просто фееричное, я лично в прошлом году уходил на 28. Странно, что для дипломной работы задача выглядит настолько отдалённо от реальности. |
||||
21 май 17, 15:42 [20499436] Ответить | Цитировать Сообщить модератору |
londinium Member Откуда: Киев Сообщений: 1195 |
интересно про двух начальников одного отдела. Это как два капитана на корабле |
||
21 май 17, 20:06 [20499660] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
Про отпуск я тогда для примера написал. Так же и с начальниками. В любом случае,цифру в ограничениях всегда можно исправить. Сможете помочь? |
||||
21 май 17, 21:13 [20499760] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
Что сложного, сделать "Количество начальников в отделе можно проверить в триггере на Сотрудник, по полям id_Отдел, id_Должность, и оно не должно быть больше 1"? Начните с запроса, показывающего количество начальников в отделах. Запросик на 3 строки, с GROUP BY и COUNT. |
||
21 май 17, 21:20 [20499772] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
Как-то так. Только показывает все занятые должности SELECT id_Должность, COUNT(*) AS Занято_мест from Сотрудник group by id_Должность,id_Отдел |
||||
22 май 17, 00:17 [20499963] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
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] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
В чем проблема? К сообщению приложен файл. Размер - 9Kb |
||||
22 май 17, 12:59 [20501098] Ответить | Цитировать Сообщить модератору |
londinium Member Откуда: Киев Сообщений: 1195 |
fantanol,
скобки EXISTS не закрыты, синтаксис <> MS SQL Server не известен |
||
22 май 17, 13:05 [20501113] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
Сделал так. Ошибок нет,но и результата тоже нет. Как можно указать ИД?
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] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
Эээ, откуда id_Должность = id_Отдел??? Нужно посмотреть, какой идентификатор соответствует должности "начальник отдела" в таблице Должность И подставить его вместо <ИД начальника отдела> Например, where id_Должность = 123321 |
||
22 май 17, 13:32 [20501192] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
Подставил id. Про прошло Только вот теперь вообще непонятно каким боком тут на продавца ругается :/ К сообщению приложен файл. Размер - 50Kb |
||||
22 май 17, 20:48 [20502498] Ответить | Цитировать Сообщить модератору |
Xenix
Guest |
Ай, и не говори: загадка на загадке. Не знает Sql Server, как преобразовать "продавца первой категории в число", помощи твоей просит |
22 май 17, 23:41 [20502821] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
Только вот я добавляю совсем другие данные |
||
22 май 17, 23:54 [20502839] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
У вас невообразимый подход к типам данных, полям, таблицам. Что у вас, например, в поле id_Должность? В таблице это bigint, а на экране у вас какие то названия? Вот у вас где то и путаница, сравниваете число со строкой. Нужно всё это просмотреть и поправить, и не путать "название" и "идентификатор". |
||
22 май 17, 23:54 [20502840] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
|
||||
22 май 17, 23:55 [20502843] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
К сообщению приложен файл. Размер - 8Kb |
||||
23 май 17, 00:00 [20502848] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
Если говорить про таблицу сотрудник,то да. Там стоят названия,а не цифры. |
||||
23 май 17, 00:04 [20502851] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
Я не особо понял суть. Но может это поможет? +cast( as varchar) ? |
23 май 17, 00:29 [20502882] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
Вы вообще зачем сделали поля-идентификаторы, например, id_Должность? Вы их как хотите использовать? Вдумайтесь, зачем вообще нужна таблица Должность, если вы просто в Сотруднике пишите названия должностей? Или таблица Отдел, с ней то же самое, вы вообще зачем её сделали? |
||||
23 май 17, 15:28 [20504658] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
|
||
23 май 17, 15:29 [20504659] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
|
||||
23 май 17, 15:30 [20504664] Ответить | Цитировать Сообщить модератору |
fantanol Member Откуда: Сообщений: 191 |
На форме есть combobox с подключенными таблицами. И при заполнении сотрудника,я вытаскиваю данные из других таблиц |
||||
23 май 17, 15:32 [20504668] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
fantanol, Повторю свой первый ответ:
|
||||||
23 май 17, 15:32 [20504670] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31813 |
|
||
23 май 17, 15:34 [20504677] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 4 [5] 6 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |