|
|
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Есть таблица, в которой есть поля Id (идентификатор записи), tn (табельный номер работника), data2 (дата увольнения), и activ (поле которое необходимо изменить). Возможно ли обновить все записи таблицы таким образом, чтобы у каждого табельного номера, была найдена последняя дата увольнения и у записи с последней датой увольнения значение activ было выставлено на 1. То есть должно получиться что-то вроде ИЗ idtndata2activ1101.02.199302104.03.201203104.06.199504204.01.199305206.07.19910 ПОЛУЧИТЬ idtndata2activ1101.02.199302104.03.201213104.06.199504204.01.199315206.07.19910 Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 12:05 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Можно, но нарушение второй нормальной формы по-моему в данном случае не оправдано. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 12:08 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Можно EB, можно подзапросом. Можно и "оконными функциями", наверное, хотя это тоже, по сути, подзапросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 12:09 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovнарушение второй нормальной формы по-моему в данном случае не оправдано.+1 Именно как "дата (последнего?) увольнения" поле activ сомнительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 12:10 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустамполе activ сомнительно.хранить актив клупо. Наложить на таблицу с датами приема-увольнения вьюху, в которой применительно к каррент_дате (или еще какой другой дате) и будет выдаваться наружу актив-неактив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 12:15 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Конечно, клупо. Групно клупо. :) Но плодить такую вьюху ещё хуже. А вот соответствующее поле в таблице самих сотрудников (в той, где табельный номер) - вполне не возбраняется. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 12:18 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Речь о нормальности базы вообще не идёт. Дело в том, что я переделываю программу 80-х годов. Там была такая избыточность что даже поля Ф.И.О. для того чтобы выводится в окне связно, хранились по отдельности и отдельным полем целиком. Вообщем то поле актив и ввожу только потому, что в базе работников, (3500 человек) некоторые личности повторяются (если увольнялся и приходил - 2 раза, если несколько раз увольнялся - несколько раз.) Причём при каждом увольнении менялся табельный номер. Я пол дня потратил чтобы найти хоть какое-то логическое оправдание этому, но увы. Вообщем, пожалуйста, помогите решить проблему с конкретным запросом. Я как бы понимаю как выбрать только интересующие записи, но не понимаю как данный селект вставить в запрос. Спасибо всем кто откликнулся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 16:14 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамА вот соответствующее поле в таблице самих сотрудников (в той, где табельный номер) - вполне не возбраняется. Боюсь вы меня не правильно поняли. Данное поле необходимо не для того чтобы выяснить уволен ли человек на данный момент или нет, а для того, чтобы в дальнейшем вывести отдельными строками его ФИО и дата устройства - увольнения на работу. Т.Е. итоговая таблица будет выглядеть как-то так... ФИОДата принятия Дата увольненияИванов Иван Иванович01.01.2003 01.07.2004Иванов Иван Иванович01.04.2007 04.05.2013Степанов Степан Степанович03.07.200912.06.2010 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 16:27 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJlДанное поле необходимо не для того чтобы выяснить уволен ли человек на данный момент или нет, а для того, чтобы в дальнейшем вывести отдельными строками его ФИО и дата устройства - увольнения на работу.Тогда и обновлять ничего не надо. Если у вас ФБ до 2.5 включительно, то используйте курсор , т.е. это будет PSQL. Если же ФБ 3.0, то можно через оконные функции, на чистом SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 16:53 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Таблоид, Можно поподробнее? Или хотя бы где почитать =\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 17:07 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJlИли хотя бы где почитать =\ Начни с раздела документации на оф.сайте. Language Reference и Language Reference Update последовательно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 17:58 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Ман нашёл, не верен что успею прочитать и выполнить, но всё равно спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 18:51 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJlне верен что успею прочитать и выполнить "Лучше день потерять потом за пять минут долететь." (с) MuxauJlя переделываю программу 80-х годов С каких это пор рефакторинг выполняется на время?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 19:21 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Менялись программисты, каждый что-то пытался вносить в своё... В итоге есть таблицы общих сведений о работниках на 80+ полей, из которых какие-то повторяются, а какие-то использовались для одного отчёта. С курсором вроде разобрался... Начал буксовать насчёт запроса... Завтра на свежую голову буду думать =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 20:10 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJlНачал буксовать насчёт запроса...Не мешало бы версию ФБ озвучить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 20:25 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJlМенялись программисты, каждый что-то пытался вносить в своё... В итоге есть таблицы общих сведений о работниках на 80+ полей, из которых какие-то повторяются, а какие-то использовались для одного отчёта. И чо? Это, типа, офигенное обоснование для спешки?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2014, 20:25 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJl> некоторые личности повторяются (если увольнялся и приходил - MuxauJl> 2 раза, если несколько раз увольнялся - несколько раз.) MuxauJl> Причём при каждом увольнении менялся табельный номер. Странная практика. Я особо не интересовался кадровым учётом и старым КЗОТом, но, как минимум, личное дело у сотрудника одно и то же, а не каждый раз новое - соответственно, и запись (и табельный номер тоже, видимо) в таблице сотрудников одна. А в таблице периодов - интервалы приёма-увольнения. Если уж переписываешь (а не "переделываешь") - делай сразу по-человечески, включая исправление структур БД. MuxauJl> Я как бы понимаю как выбрать только интересующие записи, MuxauJl> но не понимаю как данный селект вставить в запрос. update table ... where (select from sametable условия) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 00:46 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJl> Данное поле необходимо не для того чтобы выяснить MuxauJl> уволен ли человек на данный момент или нет, а для того, MuxauJl> чтобы в дальнейшем вывести отдельными строками его MuxauJl> ФИО и дата устройства - увольнения на работу. Для этого означенное поле activ вообще не нужно. :) Либо PSQL-курсор (EB, ХП), либо подзапросы, вытаскивающие min и max, либо оконные функции. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 00:49 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Для этого означенное поле activ вообще не нужно. :) Либо PSQL-курсор (EB, ХП), либо подзапросы, вытаскивающие min и max, либо оконные функции. Вытаскивал минимум и максимум. Но только суть в чём. Я хочу сделать так чтобы табельный номер не изменялся ( то есть что бы в дальнейшем дела не дублировались). Если я сделаю подзапросами, так как я себе это представляю, то он будет выводить только последнюю дату увольнения. З.ы. Поясню на всякий случай, выводить все нельзя так как там еще перемещения из отделения в отделение, и отпуска и т.д. Гаджимурадов Рустам update table ... where (select from sametable условия) Если я правильно понял то что-то такое я пытался осуществить... Не мог разобраться в синтаксисе. Dimitry Sibiryakov И чо? Это, типа, офигенное обоснование для спешки?.. Нет, офигенное обоснование для спешки в том, что отчёт по программе должен быть сдан через 4 дня. А я ещё с базой колупаюсь =) Таблоид Не мешало бы версию ФБ озвучить... Firebird 2.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 15:53 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJlофигенное обоснование для спешки в том, что отчёт по программе должен быть сдан через 4 дня. А я ещё с базой колупаюсь =) Забей. Это не твои проблемы, а тех, кто нанимает неспециалистов на работу, которую они не в состоянии выполнить. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 16:02 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Да я как бэ практику прохожу.. неоплачиваемый труд и всё такое... Просто я хотелось бы сделать хотя бы с намёком на человечность... Я иначе чем через актив это не представляю. И ума не хватает его заполнить. Вот такая беда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 16:05 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
[quot MuxauJl]Гаджимурадов Рустам...... Но только суть в чём. Я хочу сделать так чтобы табельный номер не изменялся ( то есть что бы в дальнейшем дела не дублировались). Если я сделаю подзапросами, так как я себе это представляю, то он будет выводить только последнюю дату увольнения. З.ы. Поясню на всякий случай, выводить все нельзя так как там еще перемещения из отделения в отделение, и отпуска и т.д. .... По поводу не изменения табельного номера. Лучше с этим не связываться, ибо сама природа табельного номера подразумевает его изменение, хотя в википедии и написано "...он присваивается однократно при поступлении на работу, никогда не изменяется...", однако это не совсем верно, ибо при перемещении из подразделения в подразделение на многих предприятиях меняют табельный номер. Более того вполне возможно что у человека в одном предприятии будут _одновременно_ два разных табельных номера. А уж про повторное использование табельного номера вообще не говорю, это сплошь и рядом. Так что советую сделать для человека (не для работника) уникальный номер (условно назовем его постоянный номер) и к нему уже привязывать работника. зы. Про табельный номер, это не мои фантазии, это опыт многих лет работы. Правда последние лет 5-ть я этим не занимаюсь, однако не думаю что что-то кардинально изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 16:21 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустамupdate table ... where (select from sametable условия) Вообщем конкретнее о том на чём я застрял... Я сделал запрос: Код: sql 1. Выдаёт ошибку. Invalid token. Dynamic SQL Error. SQL error code = -104. Unexpected end of command - line 1, column 78. Подозреваю что дело во вложенном запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 16:22 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
m7m, Ну конечно пост не Рустаму, а MuxauJl не аккуратно вырезал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 16:23 |
|
||
|
Возможно ли обновление таблицы по записям входящим в запрос?
|
|||
|---|---|---|---|
|
#18+
MuxauJlГаджимурадов Рустамupdate table ... where (select from sametable условия) Вообщем конкретнее о том на чём я застрял... Я сделал запрос: Код: sql 1. Выдаёт ошибку. Invalid token. Dynamic SQL Error. SQL error code = -104. Unexpected end of command - line 1, column 78. Подозреваю что дело во вложенном запросе. where у тебя недописанное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 16:24 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38644493&tid=1563583]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 468ms |

| 0 / 0 |
