13.10.2022, 09:23 Консультация № 203267 ответы: 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Есть две таблицы в Postgre, calls.success и calls.cancelled
Нужно вывести все данные из обоих таблиц, но во второй таблице нет половины столбцов.
Получилось это сделать через UNION подставив в недостающие параметры свои значения.
Но работает только если из первой таблицы взять все стоблцы т.е. *, а в UNION перечислить каждый столбец.
Когда пытаюсь вывести только нужные значения, всегда получаю ошибку "each UNION query must have the same number of columns"
Что еще ожидается в UNION?

Это рабочий запрос:
[code lang=sql] from ( select * from ( select s.*, 'success' as call_type from calls.success as s
union
select
NULL as id, c.inviteid,c.invitedt,NULL as acallid,NULL as bcallid,
c.fromnumber as anumber,c.fromusername as ausername,c.fromdomain as adomain,
NULL as adisplayname,c.networkaddr as anetworkaddr,c.callednum as acallednum,
NULL as arepresentative,boolin(textout(c.fromouter)) as aouter,
c.fromprovidercode as aprovidercode,NULL as bnumber,NULL as busername,
NULL as bdomain,NULL as bdisplayname,NULL as bnetworkaddr,false as bouter,
NULL as bprovidercode,c.dial_dt,NULL as start_dt,c.stop_dt,NULL as dial_duration,
0 as duration,c.stopreason,NULL as callrecpath,NULL as callstoragecode,NULL as callrecsize,
NULL as callrecdel_dt,false as isrec,NULL as recordruleid,NULL as storageruleid,
NULL as recdomain,NULL as recexpirets,NULL as sys_recdelts,NULL as dlgbinding,
NULL as esgdlg,false as isreplacing,'failed' as call_type
from calls.cancelled as c
) t
where t.invitedt between '2022-10-10T00:00:00' and '2023-09-12T23:59:59' and date_part('hours',t.invitedt) between -3 and 20 order by t.invitedt desc LIMIT 1000) as r;"[/code]



Пытаюсь вывести только нужные мне значения
[code lang=sql]" from ( select inviteid, acallednum, start_dt, stop_dt, dial_duration, duration, stopreason, call_type
from (
select s.*, 'success' as call_type from calls.success as s
union
select
c.inviteid,
c.callednum as acallednum,
NULL as start_dt,
c.stop_dt,
NULL as dial_duration,
0 as duration,
c.stopreason,
'failed' as call_type
from calls.cancelled as c
) t
where t.invitedt between '2022-10-07T00:00:00' and '2023-09-12T23:59:59' and date_part('hours',t.invitedt) between -3 and 20 order by t.invitedt desc LIMIT 1000) as r;"[/code]

11.05.2021, 20:00 Консультация № 200811 ответы: 0
Здравствуйте! Прошу помощи в следующем вопросе: помогите исправить логическую схему ERwin 4.0.
Преподаватель написал
Странно – Рабочий выходит в много смен, но в смене один рабочий? И вы все время путаете заголовки столбцов таблицы и то что будет записано в строках таблицы. Приходится повторять - должна быть информация по работе цеха за каждую смену. На какой участок сколько каких исходных компонент поступило, что с ними делали, что получили в результате.
Такие вещи как изолирование, шлангирование ит.п. пока не надо делать в виде отдельных таблиц, это просто разные записи в таблице которую назовите Этап тех. процесса

Я столько вариантов переделывал и окончательно запутался.
27.11.2020, 13:40 Консультация № 199726 ответы: 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Задание звучит так:

Найдите самого старого однопоточника. Используйте 2 способа:
1) сортировка и ограничение вывода;
2) поиск максимального используя вложенный запрос.

Найдите студентов, которые учатся лучше, чем все студенты группы 116ст.
Следует использовать вложенный подзапрос и предикат ALL.

Найдите всех, кто родился в XX веке.
22.11.2020, 00:53 Консультация № 199684 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом:
Нужно сделать 3 SQL запроса к таблице Университет:
1. Выбрать преподавателя, который был в отпуске в сентябре 2019г
2. Определить возможные накладки аудиторий в расписании
3. Вывести расписание занятий группы П-37 за октябрь 2020г
А это само условие БД(оно имеется, но сюда прикладывается для полноты картины)
Номер, ФИО, адрес и должность преподавателя, ученая степень;
код, название, количество часов, тип контроля и раздел предмета (дисциплины);
код, название, номер заведующего кафедрой;
номер аудитории, где преподаватель читает свой предмет, дата, время, группа.
Один преподаватель может вести несколько дисциплин и одна дисциплина может вестись несколькими преподавателями.
07.11.2020, 12:26 Консультация № 199546 ответы: 1
Здравствуйте, уважаемые эксперты! У меня возникли сложности с задачей:

Дана таблица numbers, состоящая из одного поля n (тип данных int), заполненного числами от 1 до n. (можно взять n = 10000, но запрос должен работать и для 11000).
Необходимо одним запросом вывести из таблицы numbers числа, которые являются простыми.(Теорему Вильсона использовать нельзя)
06.11.2020, 15:32 Консультация № 199537 ответы: 1
Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, написать 3 запроса в SQL.


Есть таблица pizza, содержащая id, наименование (name) и цену пиццы (price)

Есть таблица client, содержащая id и имя клиента (name)

Есть таблица orders, содержащая id_order заказа, дату заказа (dat_order) и внешний ключ id_client (ссылка на клиента)

И есть таблица order_content, содержащая внешние ключи id_order (ссылка на заказ) и id_pizza (ссылка на пиццу) и количество этой пиццы в заказе (quantity)


1) Посчитать общую сумму заказов за 2014 год.

2) Найти всех постоянных клиентов (тех, кто совершил больше одного заказа, и между заказами прошло не больше 30 дней, и последний заказ был совершён не более 30 дней назад).

3) Вывести стоимость среднего заказа в выходные.
26.10.2020, 18:06 Консультация № 199432 ответы: 1
Здравствуйте! Прошу помощи в следующем вопросе:

Есть база данных с двумя таблицами:
client (id - числовой идентификатор абонента, name и rate - тариф (руб. за минуту))
и calls (id - числовой идентификатор абонента, time - дата и время звонка и duration - его длительность)

Необходимо написать 2 запроса:

1. Запрос, который будет возвращать стоимость всех разговоров для каждого абонента
2. Запрос, который возвращает имена абонентов, совершивших только один звонок
29.01.2020, 16:26 Консультация № 197664 ответы: 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Помогите пожалуйста создать СУБД SQL базу данных
20.11.2019, 06:49 Консультация № 197148 ответы: 0
Здравствуйте! Прошу помощи в следующем вопросе:Foxpro 2 Неверная ссылка на индекс как устранить

11.02.2019, 18:36 Консультация № 194676 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом: Есть База Данных MS SQL Server Express имя Sales, в ней таблицы
1). Product:

Product_id int, первичный ключ

Name nvarchar(100)

Color nvarchar(15)

Size nvarchar(5)

Cost money

2) Person:

Person_id int, первичный ключ

FIO nvarchar(250)

Address nvarchar(250)

Phone varchar (15)

3) Orders

Order_id int, первичный ключ

Person_id int

Order_Date datetime

4) OrderDetail

Order_id int

Product_id int

Quantity int

Есть ли какой-то способ заполнить их случайными данными типа Random в соответствии с типом полей?

25.12.2018, 17:30 Консультация № 194292 ответы: 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Есть база данных с 20-30 таблицами, созданных лет 7 назад. Первоначальный скрипт уже ДАВНО устарел. В БД ОГРОМНАЯ куча записей. Возникла необходимость в создание пустой БД, наличие всех таблиц без данных.
Есть ли возможность получить все таблицы с колонками, ключами и зависимостями? Запрос или что-то подобное.
10.10.2018, 16:46 Консультация № 193674 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом: с упражнениями по реляционной алгебры.

Помогите решить упражнения. Я решаю их с ошибками и упражнения не засчитываются. Решите пожалуйста упражнения. Задачки по реляционной алгебры. Я прикрепил файл с ними. Думаю лучше еще их сюда переместить, дабы улучшить поиск по сайту.

Упражнения по реляционной алгебре
Для выполнения упражнений используются следующие отношения:
Поставщики S (S# (номер поставщика), Sname (имя поставщика), Status, CITY (город)) PRIMARY KEY (S#)
Детали P (P# (номер детали), Pname (название детали), Color (цвет детали), Weight, CITY) PRIMARY KEY (P#)
Проекты J (J#, JNAME (название проекта), CITY) PRIMARY KEY (J#)
Отправки SPJ (S#, P#, J#, Qty (количество))
PRIMARY KEY (S#, P#, J#)
FOREIGN KEY (S#) REFERENCES S
FOREIGN KEY (P#) REFERENCES P
FOREIGN KEY (J#) REFERENCES J

1. Получить полную информацию обо всех проектах.
2. Получить полную информацию обо всех проектах в Лондоне.
3. Получить номера поставщиков, которые обеспечивают проект J1.
4. Получить все отправки, где количество находится в диапазоне от 300 до 750 включительно.
5. Получить все сочетания «цвета деталей – города деталей».
6. Получить все такие тройки «номера поставщиков – номера деталей – номера проектов», для которых выводимые поставщик, деталь и проект размещены в одном городе.
7. Получить все такие тройки «номера поставщиков – номера деталей – номера проектов», для которых выводимые поставщик, деталь и проект не размещены в одном городе.
8. Получить все такие тройки «номера поставщиков – номера деталей – номера проектов», для которых никакие из двух выводимых поставщиков, деталей и проектов не размещены в одном городе.
9. Получить номера деталей, поставляемых поставщиком в Лондоне.
10. Получить номера деталей, поставляемых поставщиком в Лондоне для проекта в Лондоне.
11. Получить все пары названий городов, для которых поставщик из первого города обеспечивает проект во втором городе.
12. Получить номера деталей, поставляемых для всех проектов, обеспечиваемых поставщиком из того же города, где размещен проект.
13. Получить номера проектов, обеспечиваемых, по крайней мере, одним поставщиком не из того же города.
14. Получить все такие пары номеров деталей, которые обе поставляются одновременно одним поставщиком.
15. Получить общее число проектов, обеспечиваемых, поставщиком S1.
16. Получить общее количество деталей Р1, поставляемых поставщиком S1.
17. Для каждой детали, поставляемой для проекта, получить номер детали, номер проекта и соответствующее общее количество.
18. Получить номера деталей, поставляемых для некоторого проекта со средним количеством больше 320.
19. Получить имена проектов, обеспечиваемых поставщиком S1.
20. Получить цвета деталей, поставляемых поставщиком S1.
21. Получить номера деталей, поставляемых для какого-либо проекта в Лондоне.
22. Получить номера проектов, использующих, по крайней мере, одну деталь, имеющуюся у поставщика S1.
23. Получить номера поставщиков, поставляющих, по крайней мере, одну деталь, поставляемую, по крайней мере, одним поставщиком, который поставляет, по крайней мере, одну красную деталь.
24. Получить номера поставщиков со статусом, меньшим чем у поставщика S1.
25. Получить номера проектов, город которых стоит первым в алфавитном списке городов.
26. Получить номера проектов, для которых среднее количество поставляемых деталей Р1 больше, чем наибольшее количество любых деталей, поставляемых для проекта J1.
27. Получить номера поставщиков, поставляющих деталь Р1 для некоторого проекта в количестве, большем среднего количества деталей Р1 в поставках для этого проекта.
28. Получить номера проектов, для которых не поставляются красные детали поставщиками из Лондона.
29. Получить номера проектов, полностью обеспечиваемых для лондонских проектов.
30. Получить номера поставщиков, поставляющих одну и ту же деталь для всех проектов.
31. Получить номера проектов, обеспечиваемых, по крайней мере, всеми деталями поставщика S1.
32. Получить все города, в которых расположен, по крайней мере, один поставщик, одна деталь или один проект.
33. Получить номера деталей, поставляемых либо лондонским поставщиком, либо для лондонского проекта.
34. Получить пары «номер поставщика – номер детали», такие, что данный поставщик не поставляет данную деталь.
35. Получить все пары номеров поставщиков, скажем Sx и Sy, такие, что оба эти поставщика поставляют в точности одно и то же множество деталей.
06.02.2018, 14:08 Консультация № 192533 ответы: 1
Здравствуйте! Прошу помощи в следующем вопросе:
Необходимо сконструировать таблицы БД с связями (приму в любом виде sql , acsses и т.д)
Исходные данные: В аэропорту хранятся сведения об авиарейсах и пассажирах. Авиарейс характеризуется шифром, пунктом отправления, пунктом прибытия, датой отправления, датой прибытия, временем отправления, временем в пути, типом самолета. Пассажир характеризуется номером билета, номером паспорта, номером места, весом багажа, фио. Пассажир может иметь льготы, тогда стоимость билета изменяется.



25.08.2017, 09:55 Консультация № 191299 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом:

BACKUP DATABASE !!!UPP_new TO Backup_1c8 WITH INIT, NOFORMAT, SKIP, NOUNLOAD. Агент SQL Server ошибка 102.
База !!!UPP_new существует и работает. Другие запросы к базе тоже работают. Что делать?
23.06.2017, 20:49 Консультация № 191185 ответы: 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Есть таблица с 10 строками(А1...А10) и 3 столбцами(В1...В3). Как из формы с помощью VBA получить данные, например ячейки А4*В2?
17.02.2017, 11:59 Консультация № 190566 ответы: 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Здравствуйте!
Нужна помощь, в решении задания по базам данных, сможете помочь?
Ссылка на фото задания: https://pp.vk.me/c636619/v636619225/4dd02/jqiY08fjckM.jpg
Спасибо.

09.02.2017, 23:10 Консультация № 190550 ответы: 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Надо поправить логику работы формы в базе аксесс 2003, база не моя, приходится разбираться с ней. Предполагается что с ней будет работать сразу два пользователя и нужно сделать автоматическое обновление формы у пользователей при изменении одним из них, точней на форме должны автоматически переключатся кнопки из отжатого в нажатое положение (с этим разобрался). Загвоздка встала в том что бы определить было ли изменение в базе за прошедшее время или нет (к примеру за 1-3 сек)? Тупо по таймеру обновлять форму думаю не правильно, логичней обновлять только в случаи обновления записей.
08.02.2017, 16:24 Консультация № 190539 ответы: 1
Здравствуйте! У меня возникли сложности с таким вопросом:

Добрый вечер. Подскажите пожалуйста, как лучше организовать хранение данных, т.е какая структура должна быть у таблицы, для выбранных пунктов пользователем.

Например, есть электронная форма карточка, которую пользователь заполняет:

1) Раздел1:
а. Ответ1
б. Ответ2

2) Раздел2:
а. Ответ1
б. Ответ2
в. Ответ3
г. Ответ4

и так далее…
Все разделы и варианты ответов хранятся в таблицах, которая имеет структуру

Catalod (id, parent_id, title). А мне нужно создать таблиу Fact, в которой хранились бы выбранные ответы, и в дальнейшем выгрузить на страницу для редактирования данных или просмотра.

18.11.2016, 07:47 Консультация № 190058 ответы: 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Добрый день!
Нужно построить концептуальную модель данных (ER-диаграмму) для заданного описания предметной области, затем перейдите к логической модели данных, в завершении работы представьте физическую модель данных.
27.10.2016, 18:10 Консультация № 189950 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом:
Имеются атрибуты предметной области библиотека: шифр, автор, название, тематика, издательство, год издания, тираж, количество страниц, аннотация, билет, фамилия, место работы, должность, телефон, возраст, особые отметки, дата выдачи, срок возврата.
И нужно нормализовать. Можете сказать, правильно ли? Или еще можно что-нибудь выделить?
Спасибо.
15.10.2016, 09:29 Консультация № 189882 ответы: 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Выполните декомпозицию плоской таблицы на отдельные проекции (таблицы), указав поля, обеспечивающие связь этих таблиц друг с другом.
18.08.2016, 12:02 Консультация № 189696 ответы: 1
Здравствуйте! Прошу помощи в следующем вопросе: SQL Server 2008 r2. Создание шага резервного копирования базы. Как нейтрализовать 3 восклицательных знака в имени базы BACKUP DATABASE !!!UPP_new TO AltaSVHDb_monday WITH INIT, NOFORMAT, SKIP, NOUNLOAD? При анализе выскакивает ошибка: Неправильный синтаксис около конструкции "!"
05.07.2016, 14:44 Консультация № 189639 ответы: 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:


я начинающий администратор баз данных. Работаю программой PostgreSQL. Если не трудно, пожалуйста ответе на несколько вопросов)
1. что такое threshold и для чего он нужен?
2. что такое instance в postgreSQL?
3. как работает stderr? Он протоколирует только сообщения об ошибках? и где он , в каком файле он хранит их?
4. после vacuum full создается новая таблица, что происходит со старой?
5. почему autovacuum не пожет делать dumpall?
29.04.2016, 15:16 Консультация № 189289 ответы: 0
Здравствуйте! Прошу помощи в следующем вопросе:
При открытии модели в программе ERwin пишит такие ошибки, что делать?

"the mistake occurred, having loaded the file there was an unexpected condition. please, contact approximately technical support and report about this situation."
27.04.2016, 22:25 Консультация № 189283 ответы: 0
Здравствуйте! Прошу помощи в следующем вопросе:
Как вывести длинное текстовое поле в отчете RaveReports?

25.02.2016, 14:58 Консультация № 188848 ответы: 1
Здравствуйте! Прошу помощи в следующем вопросе:
изменил рабочую процедуру , пытаюсь создать новую
Код:
CREATE PROCEDURE bazochki()
BEGIN
DECLARE bazka INT DEFAULT (SELECT max(id_bases) FROM bases);
DECLARE oldg,oldt,oldu INT DEFAULT 0;
DECLARE oldc char(12);
WHILE bazka>0 DO
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE i,g,t,u,e INT;
DECLARE c char(12);
DECLARE cur1 CURSOR FOR SELECT id,id_gamers,color,time,updatetime,event FROM `bases-test` WHERE id_bases_list=bazka;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO i,g,c,t,u,e;
IF NOT done THEN
IF g <> oldg THEN
INSERT INTO `ilse`.`events` (`id`,`id_gamers`,`oldcolor`,`newcolor`,`up_down`,`time`)VALUES (NULL,oldg,oldc,c,'1',oldu);
INSERT INTO `ilse`.`events` (`id`,`id_gamers`,`oldcolor`,`newcolor`,`up_down`,`time`)VALUES (NULL,g,oldc,c,'2',t);
UPDATE `ilse`.`bases-test` SET event=1 WHERE id=i;
END IF;
SET oldg=g;
SET oldc=c;
SET oldu=u;
UNTIL done>0 END REPEAT;
CLOSE cur1;
END;
END WHILE;
END;

выдаёт ошибку #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'done>0 END REPEAT; CLOSE cur1; END; END WHILE; END'
я всё перепроверил ,ума не приложу почему оно ругается
26.01.2016, 09:14 Консультация № 188711 ответы: 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
добрый день! У меня такой вопрос: есть сайт компании по домофонам, но абонентов много и чтоб разгрузить менеджеров нужно сделать личный кабинет, но чтобы в нем по выгрузке из 1С (вся база клиентов на 1С-ке!) файла Xml, абоненты могли заходить и вводя свой № расчетного счета могли видеть только свою историю платежей, как всё это организовать? Про 1С Битрикс, просьба не писать!
09.01.2016, 14:42 Консультация № 188621 ответы: 0
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
как можно найти умножение двух переменных в аксесс 2002-2003. Там нет типа вычисляемый.
Мне обязательно нужно это сделать в аксесс 2003 так как делфи не принимает аксесс2007
срочноо
07.12.2015, 11:52 Консультация № 188349 ответы: 1
Здравствуйте, уважаемые эксперты! У меня возникли сложности с таким вопросом:
Должна сделать лабораторную работу. Создать базу данных. Вот вариант по которому должна делать: Университет (ФАКУЛЬТЕТ – СПЕЦИАЛЬНОСТЬ). Не знаю что можно написать в таблицах.
Например дана таблица ГРУППЫ и там: номер группы, направление, куратор, дата зачисления. И таблица СТУДЕНТЫ: номер зачетки, фио, дата рождения, адрес, стипендия, телефон, номер группы.
А что мне придумать для моих таблиц ФАКУЛЬТЕТ и СПЕЦИАЛЬНОСТЬ? Нужно чтобы как в примере одна строчка и в той и в той таблице была одинаковая, чтобы сделать связь. Помогите, пожалуйста.
28.12.2014, 13:21 Консультация № 187958 ответы: 0
Здравствуйте, уважаемые эксперты! Прошу вас помочь в решении следующей задачи:

1) В дни кризиса магазин техники принял решение прекратить продажу домашних кинотеатров. Разработайте хранимую процедуру, которая удалит группу всех домашних кинотеатров со всеми дочерними подгруппами, и выдаст исключение при обращении к связанными с ней данными.

Вот такую задачу решал на зачете, решение оформил следующим образом:

*x - номер группы домашних кинотеатров

DELETE FROM (
SELECT *
FROM Item
CONNECT BY PRIOR Item_id = Parent_id
START WITH Item_id = x)

DECLARE
DELETED_ITEMS_EXIST EXCEPTION;
BEGIN
SELECT COUNT(Item_id) INTO c FROM Items
CONNECT BY PRIOR Item_id = Parent_id
START WITH Item_id = x
IF c>0 THEN RAISE DELETED_ITEMS_EXIST
EXCEPTION
WHEN DELETED_ITEMS_EXIST THEN
E_MESSAGE:= "Есть неудаленные элементы"
END


Но, насколько я выяснил позже, решение не совсем хорошее, в нем есть либо ошибки, либо недоработки, узнать, что именно неверно, не имеется возможности.

Прошу вас помочь мне понять, что именно тут не так. Ответа буду очень ждать максимум до вечера понедельника, дальше нужно будет защищать.

Заранее огромное спасибо!

С уважением,

Барс Иван.



PS. С наступающими праздниками!
19.06.2014, 09:33 Консультация № 187885 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом:
Может бать вопрос не умный, но я начинающий программировать в FileMaker, да еще пенсионер, мозгов видать не достаточно!
Создал базу данных учета финансов, но как пошагово решить вопрос с выборкой по датам ( периодам), знаю как это делается в Access с помощью Between. Но в FileMaker совсем другая архитектура.
Спасибо за помощь!
С уважением!
21.02.2014, 17:54 Консультация № 187747 ответы: 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
1.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице информацию о клиенте, которого добавили в справочник клиентов при условии, что фамилия начинается на ‘ИВ’.
2.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице старое и новое значения перечня удобств при изменении данных в справочнике номеров.
3.Создать операторный триггер, который будет фиксировать в отдельно организованной таблице тип, пользователя и дату операции при изменении, удалении или удалении данных из таблицы регистрации клиентов в номерах.
4.Создать системный триггер на уровне схемы, который будет фиксировать в отдельно организованной таблице информацию о пользователях и объектах, структуру которых изменяют.
База данных имеет следующие таблицы
[table]
[row][col] Код номера[/col][col]Тип номера [/col][col] Перечень удобств[/col][col] Цена за сутки[/col][col] [/col][col] [/col][col] [/col][/row][/table]
[table]
[row][col] Код регистрации [/col][col]Код номера [/col][col] Дата заезда[/col][col] Дата выезда[/col][col]Стоимость [/col]Код клиента [col] [/col][col] [/col][/row][/table]
[table]
[row][col]Код клиента [/col][col] Фамилия[/col][col]Имя [/col][col] Отчество[/col][col]Адрес [/col][col] Телефон[/col][col]Серия и номер паспорта
[/col][/row]
[/table]

13.02.2014, 23:28 Консультация № 187743 ответы: 1
Здравствуйте! Прошу помощи в следующем вопросе: Подскажите как лучше организовать структуры БД. Имеются несколько устройств, далее они структурируются по типу, по параметрам, Сложность выжывает то, что для каждого устройства присущи свои параметры, получается что нужно для каждого типа устройств создавать отдельную таблицу или нет? Прилагаю ссылку на файл excel, где примерно показана структура БД. А вот как разместить их потаблицам и сделать связи вызвало затруднение, БД планирую делать в акцессе, надеюсь поможите хоть чем-то. ФАЙЛ EXCEL
11.02.2014, 16:02 Консультация № 187740 ответы: 1
Здравствуйте! У меня возникли сложности с таким вопросом:

Разработать структуру БД "Эксплуатация машин" (в MS Access) для первых пяти дней недели работы автопредприятия.
1. Самостоятельно определить:
- количество таблиц в БД;
- типы данных из предлагаемого генерального списка полей: Марка машины, Изображение машины, Номер, Суточный пробег, Дата выезда, Время выезда, Время возвращения, Старший машины, Расход топлива на 100 км.
- ключевое поле (при необходимости создать искусственно).
2. Установить межтабличные связи.
3. Заполнить БД, указав не менее 4 автомобилей, выезжающих в один день (хотя бы поля: марка машины, суточный пробег, расход топлива на 100 км).

Заполнить готовую БД теоретически несложно, но вот практически... Машинами я не занимаюсь и имею весьма расплывчатое представление про марки машин, их суточный пробег, расход топлива на 100 км.
11.02.2014, 15:25 Консультация № 187739 ответы: 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Получить сведения о товарах на складе от поставщика Pavlova, Ltd. с ценой ниже средней, указав, поставки каких товаров продолжаются в Австрию или Германию. Пересчитать цену товара с удешевлением на 10%.

Учебная БД "Борей": https://rfpro.ru/upload/9635

Задание выполнить в соответствии с образцом: https://rfpro.ru/upload/9636
11.10.2013, 09:16 Консультация № 187567 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом: есть база данных на access и к ней приложение на C#, помогите сделать все тоже самое только msssql и C#, т.е. там чуть поправить
пароль 123
05.09.2013, 10:20 Консультация № 187532 ответы: 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Уважаемые эксперты, есть база на MS Sql 2008
столкнулся с проблемой объединения 2 таблиц,возможно проблема пустяковая но не совсем понимаю как решить.
Есть 2 таблицы:
1таблица:
t1(напишу в русском эквиваленте)
счет
дата
остаток по кредиту
остаток по дебету
2 таблица:
счет
дата
сумма
ставка
1 задача была объеденить 2 таблицы,чтобы узнать у счета(1таблица) ставку(2 таблица) где остатки(1 табл.) равны сумме(2 таб.)
делал так:
Код:
select * from t1 a left join t2 b on a.acc=b.acc where (a.kred_ost=b.summa or a.debet_summa=b.summa) 


с этим понятно, но нужно выбрать те записи которые отвечают след.условиям:
чтобы понятно было поясню, 2 таблица - набор данных, где у счетов по разным суммам в разные дни могут быть разные ставки, точнее это ставки фондированияу клиента, которые могут меняться по счету много раз в некотором периоде.
Первая таблица - это набор данных остатков по счетам
что то совсем не пойму как лучше написать
Например возьмем пример:
в первой таблице есть счет(кредитный)
45208%1 у которого были обороты с января по июль 2013 года
во второй таблице хранятся ставки фондирования с суммами
т.е. так(во второй таблице)
счет - дата - сумма_фондирования - ставка

45208%1 - 10.02.2013 - 150000 - 13%
45208%1 - 15.02.2013 - 1478000 - 10%
45208%1 ...................
...................................
...................................
1) Нужно объеденить первую таблицу со второй, чтобы можно было вытянуть ставку, но это в принципе как я приводил селектом
но + к этому нужно взять оставшиеся записи из первой таблице(данные которые не нашли себе пары из второй)
2) Все это нужно для подсчета расхода по клиенту
не пойму как расчитать:
формула такова:
(среднедневной осаток * ставку фондирования)*кол-во дней /365
у счета за период менялась ставка несколько раз
среднедневной = сумме остатков за период / количество дней в этом периоде.
среднедневной у меня есть, допустим есть ставка(которая описана в первом вопросе),как считать?

29.06.2013, 12:05 Консультация № 187493 ответы: 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Как в моем случае лучше оптимизировать структуру таблиц запрос.

Есть табличка пользователей:
CREATE TABLE IF NOT EXISTS `users` (
`uid` int(11) NOT NULL,
`adddate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`gold` int(11) NOT NULL,
`pass` varchar(15) NOT NULL,
`email` varchar(60) NOT NULL,
`login` varchar(32) NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Есть табличка страниц

CREATE TABLE IF NOT EXISTS `pages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`adddate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`user` int(11) NOT NULL,
`name` varchar(70) CHARACTER SET utf8 NOT NULL,
`link` varchar(256) CHARACTER SET utf8 NOT NULL,
`gold` int(11) NOT NULL,
`click` int(11) NOT NULL,
`pass` int(11) NOT NULL,
`prs` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`),
KEY `user` (`user`)
KEY `prs` (`prs`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

И есть табличка посещений этих страниц

CREATE TABLE IF NOT EXISTS `clik` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL, // Это id пользователя
`postid` int(11) NOT NULL, // Это id странички
PRIMARY KEY (`id`),
KEY `postid` (`postid`),
KEY `uid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Пользователь выполняет запрос

SELECT pages.id,prs,link,name
FROM pages
LEFT OUTER JOIN clik ON ((pages.id = clik.postid)
and (clik.uid ='.$_SESSION['uid'].'))
WHERE clik.id is null
and gold >= prs*'.rand(1,5).' // здесь берется запас, что бы при большом количестве пользователей не было страничек без gold
and pass < 10
ORDER BY prs DESC,ID DESC
LIMIT 0 , 15

Соответственно получает список страниц которые еще не посещал.
Кликает на страничку - переходит не нее, выполняет действие.
Далее происходит проверка -
1. В табличке clik проверяется что такой записи нет
2. Проверяется действие совершенное пользователе на странице
3. Если действие совершено - с записи странички списывается gold(монеты) в размер prs(цена) и добавляется пользователю
если действие не выполнено - gold не добавляется
В табличку clik добавляется запись с id пользователя id странички , что бы при следующем селекте этой записи пользователю не выдавалось.
Если пользователь игнорирует страничку то ей добавляется значение pass. После 10 таких игноров страничка исключается(битая ссылка)


Сейчас сравнительно долго выполняется оператор селект. Вопрос - как уменьшить скорость его выполнения?
Добавить составной индекс из gold,pass? Но на сколько это увеличит производительность если gold постоянно меняется?
27.06.2013, 15:53 Консультация № 187487 ответы: 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Каким образом импортировать таблицу эксель в FM? Суть в том что: таблица это своего рода "упаковочный лист", имеющая много столбцов в которых указывается 1. товар 2.маркировка товара 3. количество 4. вес брутто 5. вес нетто 6. фирма изготовитель 7. получатель. Товаров может быть сколько угодно. Получается таблица с семью столбцами и сколько угодно строк. Выше таблицы имеются еще записи, которые нам при импорте не нужны. В FM создаю первый макет - упаковочный лист, где просто идет список номеров этих листов и второй макет - упаковочный лист подробно. Где как раз и должна отображаться эта таблица из экселя. Как импортировать всю таблицу, так чтобы она относилась только к одному упаковочному листу, в макете выглядела таблицей и верхние строки, что стояли в экселе перед самой таблицей не импортировались?
23.06.2013, 23:42 Консультация № 187483 ответы: 1
Здравствуйте! Создаю БД в MS ACCESS, по ответу к консультации https://rfpro.ru/question/187286
Переношу в Access (через форму) таблицу "Занятость_певца":

При попытке ввести пятую строку

возникает ошибка, т.к. все 3 ключевые поля совпадают. В режиме конструктора для всех ключевых полей я установил свойство "индексированное поле" в "Да (Допускаются совпадения)", но это не помогло. Как занести данную строку в таблицу ?
10.06.2013, 13:14 Консультация № 187456 ответы: 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Прошу не пинать меня за возможную корявость объяснения, т.к. я не специалист. Итак проблема: имеется файл базы данных рабочей прикладной программы с расширение fdb. Мне нужно отредактировать некоторые цифры в этой базе. Начитавшись попробовал установить программу ibexpert и открыть этот файл для редактирования. Но не могу соединиться с базой. Впрочем если даже я и соединюсь, я слабо представляю, что я там увижу - документ в таком же виде, как он идет на печать или как-то по другому. Словом просьба проконсультировать по соединению с этой базой (а может каким то иным способом можно это делать) и научить, как редактировать нужные мне циферки. Не знаю можно ли здесь оставлять контакты, аську например. если можно то скажите в аське можно будет оперативно общаться. Уфф, надеюсь что объяснил более менее понятно. Жду ваших откликов.
04.06.2013, 19:37 Консультация № 187436 ответы: 0
Здравствуйте! Прошу помощи в следующем вопросе:
Требуется создать базу данных на filemaker 12, для интернет магазинов по продаже автомобильных шин. В основном склад, но с учетом движения денежных средств.
С уважением Павел.
pashkin777@ya.ru
03.06.2013, 14:34 Консультация № 187426 ответы: 0
Уважаемые эксперты! Пожалуйста, помогите доделать ПРОГРАММУ (скачать тут):
Программа вся рабочая, кроме одной формы "информация - список студентов", она сделана, но только нужно, чтобы можно было заполнить такие поля - фио, группу, дежурства, оценки. Ну и уже потом, еще сделать, чтобы высчитывала среднюю оценку по каждому человеку. Кто возьмется, тому доплачу еще небольшою сумму. Жду вашей помощи!
18.04.2013, 15:00 Консультация № 187286 ответы: 1
Здравствуйте!
Прошу, выполните следующее задание:

Предположим, что о знаменитых певцах и певицах, которые выступали в различных оперных спектаклях и в разных оперных театрах, создаётся простая БД. В этой базе должны быть определены данные о каждом певце или певице, и в каких операх и оперных театрах мира они выступали, и в каких ролях. Т.е в БД должны быть представлены следующие атрибуты:
КП - код певца(певицы);
ИП - имя певца(певицы);
КО - код оперы;
НО - название оперы;
КТ - код театра;
НТ - название театра.
ИР - исполняемая роль;
КС - количество спектаклей

Накладываемые ограничения:
Певец может быть исполнителем в разных операх как в одном так и в нескольких оперных театрах и исполнять различные роли в одном спектакле.

На основе перечисленных данных выполните следующее:
1 Определите отношение(таблицу).
2 Заполните эту таблицу произвольными данными(не менее десяти кортежей(записей)).
3 Проверьте, что построенное отношение находится в 1НФ.
4 Постройте функциональную зависимость между атрибутами.
5 На основе анализа функциональной зависимости выполните операции проекции над первым отношением, чтобы получить другие отношения, которые будут находиться в 3НФ.
6 Помните, что необходимо соблюдать принцип независимости представления и описания данных от прикладных программ.



Приложение:
Пример выполнение подобного задания: пример
17.03.2013, 22:53 Консультация № 187213 ответы: 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
12.02.2013, 07:17 Консультация № 187159 ответы: 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

База данных в MSSQL 2008R2. В таблице есть текстовое поле (тип ntext), к которому я хочу применить условие LIKE. В столбце русский текст. В строке поле должно начинаться с букв ЭЧБ. Пишу такой запрос:
Код:
SELECT [поле] FROM dbo.Таблица WHERE [поле] LIKE 'ЭЧБ%'

В результате не возвращается ни одна строка, хотя строки, начинающиеся с ЭЧБ есть, это совершенно точно.
Что нужно сделать, чтобы запрос возвратил корректный результат?
03.01.2013, 22:18 Консультация № 187075 ответы: 1
Здравствуйте! Прошу помощи в следующем вопросе:
Для MSSQL помогите пожалуста написать запрос

Таблица поставщиков (S) (Hомеp поставщика,Фамилия,Рейтинг ,Гоpод )
Таблица деталей (P) (Номер детали,Название,Цвет,Вес,Город)
Таблица изделий (J)(Номер изделия,Название,Город)
Таблица поставок (SPJ)(Номер поставщика,Номер детали,Номер изделия, Количество)

Используя скроллирующий курсор, выводить результаты выполнения запроса в обратном порядке:
Получить номера изделий, использующих по крайней мере одну деталь, поставляемую поставщиком S1.

Спасибо!
14.11.2012, 14:19 Консультация № 186813 ответы: 1
Здравствуйте! У меня возникли сложности с таким вопросом:

Есть две таблицы. В одной хранятся названия групп компьютеров и их IP (все IP каждой группы лежат в текстовом поле, обрамлённые двойными кавычками и разделённые запятой). Во второй таблице ведётся учёт интернет-трафика, в каждой строке представлен IP и кол-во израсходованных интернет-байтов.
Вопрос: как написать встроенную функцию, которая берёт значение из поля IP группы и суммирует из второй таблицы байты только этой группы. Я пробовал так:
Код:

//В функцию передаётся идентификатор группы
CREATE FUNCTION SummaFromLog(ids INTEGER)
RETURNS NUMERIC(15,2)
COMMENT 'Возвращает сумму Мбайт для указанного списка IP'
BEGIN
DECLARE mySum NUMERIC(15,2);
DECLARE myComps VARCHAR(255);

//Согласно идентификатору получаем список IP группы
//В переменной myComps получается что-то вроде этого:
//"192.168.0.1","192.168.0.2","192.168.0.3"
SELECT comps INTO myComps FROM otdels WHERE id = ids;

//Теперь делаем выборку суммы байтов
SELECT SUM(bytesin) INTO mySum FROM log WHERE client IN (myComps);

RETURN mySum;
END

Однако в результате вместо суммы я всегда получаю NULL. Но если вторую выборку написать так:
SELECT SUM(bytesin) INTO mySum FROM log WHERE client IN ("192.168.0.1","192.168.0.2","192.168.0.3");
то возвращается правильная сумма.
Какие будут рекомендации?
13.11.2012, 22:30 Консультация № 186809 ответы: 0
Здравствуйте! У меня возникли сложности с таким вопросом:

Запросы на сайте выполняются очень долго. Хочу попробовать создать дополнительные индексы для таблиц участвующих в запросе, но вот как определить для каких столбцов именно нужно их создать не могу разобраться, т.к. в mysql не силен и мало что в этом понимаю.

Примечание: работаем в битриксе.

"Тормозной" запрос:
Код:

SELECT BE.ID as ID,BE.NAME as NAME,BE.CODE as CODE,DATE_FORMAT(BE.DATE_CREATE, '%d.%m.%Y %H:%i:%s') as DATE_CREATE,IF(EXTRACT(HOUR_SECOND
FROM
BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as ACTIVE_FROM,BE.CREATED_BY as CREATED_BY,BE.IBLOCK_ID as IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,BE.DETAIL_TEXT as DETAIL_TEXT,BE.DETAIL_TEXT_TYPE as DETAIL_TEXT_TYPE,BE.DETAIL_PICTURE as DETAIL_PICTURE,BE.PREVIEW_TEXT as PREVIEW_TEXT,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.PREVIEW_PICTURE as PREVIEW_PICTURE, FPS0.*, FPS0.PROPERTY_70 as PROPERTY_70_VALUE, FPS0.DESCRIPTION_70 as PROPERTY_70_DESCRIPTION, concat(BE.ID , ':' , 70) as PROPERTY_70_VALUE_ID,L.DIR as LANG_DIR,BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID
FROM
b_iblock B
INNER JOIN b_lang L ON B.LID=L.LID
INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID
INNER JOIN b_iblock_element_prop_s15 FPS0 ON FPS0.IBLOCK_ELEMENT_ID = BE.ID
INNER JOIN ( SELECT DISTINCT B.ID
FROM
b_iblock B
INNER JOIN b_iblock_site BS ON BS.IBLOCK_ID = B.ID
WHERE
((((BS.SITE_ID='s1')))) AND ((((B.ID = '15')))) AND ((((B.ACTIVE='Y')))) ) BB ON BB.ID = BE.IBLOCK_ID
INNER JOIN ( SELECT DISTINCT BSE.IBLOCK_ELEMENT_ID
FROM
b_iblock_section_element BSE
INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID
WHERE
((BS.ID IN (676))) ) BES ON BES.IBLOCK_ELEMENT_ID = BE.ID
WHERE
1=1 AND ( ((((BE.IBLOCK_ID = '15')))) AND ((((B.ACTIVE='Y')))) AND (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND ((((BE.ACTIVE='Y')))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL)))
ORDER BY
BE.NAME asc ,BE.ID desc
LIMIT 0, 100


Результат EXPLAIN данного запроса:
Код:

id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system 1 Using temporary; Using filesort
1 PRIMARY B const PRIMARY PRIMARY 4 const 1
1 PRIMARY L const PRIMARY PRIMARY 2 const 1
1 PRIMARY <derived3> ALL 15735
1 PRIMARY FPS0 eq_ref PRIMARY PRIMARY 4 BES.IBLOCK_ELEMENT_ID 1
1 PRIMARY BE eq_ref PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code PRIMARY 4 BES.IBLOCK_ELEMENT_ID 1 Using where
3 DERIVED BS const PRIMARY PRIMARY 4 1 Using index
3 DERIVED BSE ref ux_iblock_section_element ux_iblock_section_element 4 16889 Using where; Using index
2 DERIVED B const PRIMARY PRIMARY 4 1
2 DERIVED BS const PRIMARY PRIMARY 6 1 Using index


Прошу помочь в данном вопросе.

Если нужна дополнительная информация, сообщите какая.
27.05.2012, 23:26 Консультация № 186218 ответы: 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
У меня возник вопрос Как зделать в базе данных чтобы был преход на другую строку автоматически Допустим у меня есть фото их очень много и я хочу сделать так чтоб они поместились у меня на одной странице в ряд по 6 шт вот на этом сайте http://znakdemo.eromanke.ru