Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 28

Установить стоимость контрактов, начинающихся после даты, следующей за датой выполнения запроса, в размере, на

11.11.2016, 21:35. Показов 1245. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как можно решить вот такую задачу?
Установить стоимость контрактов, начинающихся после даты, следующей за датой выполнения запроса, в размере, на 50% большем суммарной зарплаты экипажа за время аренды.

SQL
1
2
3
UPDATE "Contract" SET "Price" = "Price" + ("Salary")*0.5
FROM "Positions"
WHERE "StartDate" > 'today'
я делаю так а оно мне обновляет на какие-то другие значения(
Миниатюры
Установить стоимость контрактов, начинающихся после даты, следующей за датой выполнения запроса, в размере, на  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2016, 21:35
Ответы с готовыми решениями:

Каково будет содержание регистра после выполнения следующей программы
каково буде содержание регистра ECX в десятичном формате после выполнения следующей программы: LEA EBX,M MOV ECX,7 ...

Определите значение переменной b после выполнения следующей Паскаль-программы:
Определите значение переменной b после выполнения следующей Паскаль-программы: Var a,b,c : integer; Begin a:=2;

Чему будет равно следующее значение s после выполнения следующей последовательности операторов?
1) s:=0; i:=0; repeat s:=s+2*i; i:=i+3; until s>10; 2) s:=0; i:=0; while s>10 do begin s:=s+2*i;

9
1265 / 979 / 384
Регистрация: 02.09.2012
Сообщений: 3,026
12.11.2016, 02:25
Вы "Positions" никак не связали с "Contracts". Конечно она будет не так считать.
Если я правильно понял задание, то нужно посчитать сумму зарплаты
SQL
1
2
UPDATE "Contract" c SET "Price" = "Price" + 0.5 * (SELECT SUM("Salary") FROM "Crew" c, "Positions" p WHERE p."YactId" = c."YactId" AND c."PositionId" = p."PositionId")
WHERE "StartDate" > 'today'
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 28
12.11.2016, 19:56  [ТС]
Добавлено через 20 секунд
grgdvo,
нет, здесь нужно посчитать сумму экипажа каждой яхты в зависимости от того на сколько дней контракт
у меня есть 4 члена экипажа
которые получают
1.Капитан - 10000
2.Боцман - 7000
3.Матрос 1 ранга - 5000
4. Матрос 2 ранга - 3000
на каждой яхте разный экипаж
0
1265 / 979 / 384
Регистрация: 02.09.2012
Сообщений: 3,026
13.11.2016, 07:24
Забыл что ли умножить на количество дней контракта?!
SQL
1
2
3
4
5
6
UPDATE "Contract" AS ct
  SET ct."Price" = ct."Price" + 
    0.5 * 
    (ct."EndDate" - ct."StartDate") *
    (SELECT SUM("Salary") FROM "Crew" cr, "Positions" ps WHERE cr."YactId" = ct."YactId" AND cr."PositionId" = ps."PositionId")
  WHERE "StartDate" > 'today';
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 28
13.11.2016, 14:49  [ТС]
grgdvo,
я вот делаю так но оно выводит мне
подзапрос вернул больше одной строки
UPDATE "Contract"
SQL
1
2
3
4
5
6
7
8
9
SET "Price" = "Price" + 
    (0.5 * 
    ("EndDate" - "StartDate")) *
    
    ((SELECT SUM (p."Salary")
      FROM "Yacht" AS y , "Crew" AS c, "Positions" AS  p
      WHERE y."YachtId" = c."YachtId" AND c."PositionId" = p."PositionId"
      GROUP BY  y."Name"))
  WHERE "StartDate" > 'today';
Добавлено через 6 минут
grgdvo,
я вот делаю так но оно выводит мне
подзапрос вернул больше одной строки

SQL
1
2
3
4
5
6
7
8
9
UPDATE "Contract" SET "Price" = "Price" + 
    (0.5 * 
    ("EndDate" - "StartDate")) *
    
    ((SELECT SUM (p."Salary")
      FROM "Yacht" AS y , "Crew" AS c, "Positions" AS  p
      WHERE y."YachtId" = c."YachtId" AND c."PositionId" = p."PositionId"
      GROUP BY  y."Name"))
  WHERE "StartDate" > 'today';
0
1265 / 979 / 384
Регистрация: 02.09.2012
Сообщений: 3,026
13.11.2016, 16:44
В данном виде подзапрос возвращает у вас суммы зарплаты по всем судам.
Логично, что это больше одного. В результате ошибка.

Зачем "Yacht" вподзапросе??? У вас уже в "Contracts" есть идентификатор судна.
Свяжите подзапрос с "Contracts"."YactID"
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 28
13.11.2016, 16:51  [ТС]
grgdvo,
Когда я делаю вот так
SQL
1
2
3
4
5
6
7
8
9
10
11
UPDATE "Contract" AS ct
 
  SET ct."Price" = ct."Price" + 
    0.5 * 
    (ct."EndDate" - ct."StartDate") *
    
    (SELECT SUM("Salary") 
    FROM "Crew" cr, "Positions" ps 
    WHERE cr."YachtId" = ct."YachtId" AND cr."PositionId" = ps."PositionId")
    
  WHERE "StartDate" > 'today';
оно мне выводит вот это(
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 28
13.11.2016, 16:52  [ТС]
grgdvo,
Миниатюры
Установить стоимость контрактов, начинающихся после даты, следующей за датой выполнения запроса, в размере, на  
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 28
13.11.2016, 17:13  [ТС]
grgdvo, у меня у каждой яхты разное количество экипажа!
0
1265 / 979 / 384
Регистрация: 02.09.2012
Сообщений: 3,026
13.11.2016, 18:15
Лучший ответ Сообщение было отмечено Trigger_name как решение

Решение

Упс.... В SET имя колонки без ссылки на таблицу должно использоваться

SQL
1
2
3
4
5
6
7
8
UPDATE "Contract" AS ct
  SET "Price" = ct."Price" + 
    0.5 * 
    (ct."EndDate" - ct."StartDate") *
    (SELECT SUM("Salary") 
    FROM "Crew" cr, "Positions" ps 
    WHERE cr."YachtId" = ct."YachtId" AND cr."PositionId" = ps."PositionId")
  WHERE "StartDate" > 'today';
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2016, 18:15
Помогаю со студенческими работами здесь

Чему будет равно значение переменной s после выполнения следующей последовательности операторов?
s:=10; for i:=1 to 5 do s:=s+3*i; (В ответ введите число).

Чему будет равно значение переменной j после выполнения следующей последовательности операторов?
1) Чему будет равно значение переменной j после выполнения следующей последовательности операторов? i:=3; if abs(i-3)>2 then ...

Определите значение величины q (истина или ложь) после выполнения следующей команды присваивания
Определите значение величины q (истина или ложь) после выполнения следующей команды присваивания q:=sin(a) < sin(b) < sin(c), a,...

Кодировка после выполнения запроса
Имеется таблица CREATE TABLE `gtd` ( `ND` char(23) NOT NULL DEFAULT '', `G31_1` varchar(7500) DEFAULT NULL ) ENGINE=MyISAM...

Вывод сообщения после выполнения запроса
Здравствуйте! Прошу помочь: Нужно чтобы запрос сравнивал наличие в БД определенного номера документа и выдавал сообщение либо о его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru