Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 11.11.2010
Сообщений: 14

Объединение таблиц

24.11.2010, 22:10. Показов 2383. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Сделал 2 таблицы. "Итого" и "База_абонентов". Из этих таблиц в запросе нужны следующие поля:

Итого.KODPOL
База_абонентов.[PID КСЗН]
Итого.Общая
База_абонентов.[ЕДК + КоррЕДК]
База_абонентов.[N лс]



Составил такой запрос:

SQL
1
2
3
4
5
SELECT Итого.KODPOL, База_абонентов.[PID КСЗН], База_абонентов.[ЕДК + КоррЕДК], База_абонентов.[N лс]
FROM Итого
INNER JOIN База_абонентов 
ON Итого.KODPOL=База_абонентов.[PID КСЗН]
ORDER BY Итого.KODPOL
Но при выполнении пишет "несоответствие в типе выражения". Скажите пожалуйста, в чем ошибка.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2010, 22:10
Ответы с готовыми решениями:

Объединение таблиц
Доброго времени суток. Даны 2 таблицы с данными. Одна таблица - это данные за один месяц. Можно ли объединить таблицы так, чтобы в итоговой...

Объединение таблиц
Здравствуйте! Подскажите пожалуйста, как создать таблицу "Итог" из двух (и более) таблиц "База1" и "База2", при...

Объединение таблиц
Здравствуйте! Возможно как-то соединить две таблицы по одинаковым полям, но чтобы данные в других полях не задваивались? SELECT...

5
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
24.11.2010, 22:49
Здравствуйте ghost606.
"несоответствие в типе выражения" Вы выложили имена полей и SQL конструкцию, для получения ответа/помощи этого не достаточно. Опишите типы и размер полей таблиц, укажите ключи и индексы, поля связи и зависимые поля, отношения,... и тогда возможно у Вас появится шанс получить помощь форума (если кто то захочет моделировать Вашу конструкцию). Но существует другой вариант значительно увеличивающий вероятность получения помощи - выложите архив с заранее подготовленным (желательно в формате А2003, избавленным от избыточных данных, OLE объектов,.... и сжатый средствами MS Access) файлом БД, и на примере Вашей БД можно будет продемонстрировать способ решения Вашей задачи.

Как поступить - решать Вам.
Евгений.
P.S. выкладывая на странице текст кода или текстовые конструкции, заключайте их в соответствующие теги (в Вашем случае кнопка SQL)
1
0 / 0 / 0
Регистрация: 11.11.2010
Сообщений: 14
25.11.2010, 22:30  [ТС]
SQL
1
2
3
SELECT Итого.KODPOL, База_абонентов.[PID КСЗН], База_абонентов.[ЕДК + КоррЕДК], Итого.Общая, База_абонентов.[N лс]
FROM Итого INNER JOIN База_абонентов ON Итого.KODPOL=База_абонентов.[PID КСЗН]
ORDER BY Итого.KODPOL;
Сделал все, как вы сказали. За прошедший день самостоятельно поработал над запросом и кое-что уже получилось. Усложнилось все тем, что нужно добавить поле с подсчетом разности полей "Итого.Общая" и "База_абонентов.[ЕДК + КоррЕДК]". Т.е. создать поле, например: Разность=Итого.Общая - База_абонентов.[ЕДК + КоррЕДК]. Возможно ли это? Заранее благодарен за участие.
Вложения
Тип файла: rar db12.rar (14.2 Кб, 28 просмотров)
0
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
26.11.2010, 15:07
Здравствуйте ghost606.
Данные в таком состоянии не позволят выполнить задачу, попытка установить связь Итого.KODPOL=База_абонентов.[PID КСЗН], не приведет ни к чему хорошему, т.к. для решения задачи необходимо :
1. поля Итого.KODPOL и База_абонентов.[PID КСЗН] должны быть одного типа, а фактически KODPOL - число, [PID КСЗН] - текст.
2 наличие связи между таблицами Один-Много, в текущем состоянии значения в поле KODPOL повторяются и повторяются значения в поле [PID КСЗН], а это попытка установить связь Много-Много, что не допустимо.

решение будет верным только после исправления ситуации, например удалив одну из двух записей с [PID ПРГ]="534573", подобная SQL конструкция отобразит верный результат
SQL
1
2
SELECT *, Format(NZ((SELECT SUM(T.Общая) FROM Итого T WHERE T.KODPOL=[PID КСЗН]),0)-[База_абонентов].[ЕДК + КоррЕДК],"0\.00") AS Разность
FROM База_абонентов
Евгений.
0
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
28.11.2010, 10:57
для верности работы в конструкции необходимо заменить "0\.00" на "Fixed"
Евгений.
0
0 / 0 / 0
Регистрация: 11.11.2010
Сообщений: 14
28.11.2010, 23:26  [ТС]
Спасибо большое. Безусловно этот запрос подходит. Но ему, к сожалению не хватает наглядности. Чтобы проверить правильность вычислений, нужно выполнять много действий. В том запросе, над которым я работал изначально поля Итого.KODPOL и База_абонентов.[PID КСЗН] находятся рядом и одинаковые значения в них находятся друг напротив друга. Также поля Итого.Общая и База_абонентов.[ЕДК + КоррЕДК] находятся в одном запросе. И результат вычитания можно проверить визуально.

Добавлено через 56 минут
Вопрос снимается. Вот, кажется, идеальный вариант.

SQL
1
2
3
SELECT Итого.KODPOL, База_абонентов.[PID КСЗН], База_абонентов.[ЕДК + КоррЕДК], Итого.Общая, [ЕДК + КоррЕДК]-[Общая] AS Разность, База_абонентов.[N лс]
FROM Итого INNER JOIN База_абонентов ON Итого.KODPOL = База_абонентов.[PID КСЗН]
ORDER BY Итого.KODPOL;
Добавлено через 9 часов 35 минут
Как оказалось, есть свои минусы. В поле "Разность" вместо некоторых нулей выдает значение в степени. Как бороться с этим не знаю. С типом данных в поле [ЕДК + КоррЕДК] экспериментировал. Успехов не добился.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2010, 23:26
Помогаю со студенческими работами здесь

Объединение 2-х таблиц
Доброго времени суток ! У меня такая проблема: нужно соединить две таблицы так что бы ничего не суммировалось, просто добавлялись строки....

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

Объединение таблиц
Здравствуйте! Нужно объединить несколько таблиц по дате, какой тип объединения нужно использовать? изучая справку и экспериментируя с...

Объединение таблиц
как связать и сделать такую таблицу ?

Объединение таблиц
В общем такая проблема. Есть 2 таблицы, одна Месяц Кол-во1 01...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru