powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка Ссылка на поле может относиться к полям нескольких таблиц
15 сообщений из 15, страница 1 из 1
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634777
volt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть выборка:
Код: vbnet
1.
2.
3.
SELECT ПланОтгрузки.НомСКЗ, ПланОтгрузки.КодДог, ПланОтгрузки.Дог_СКЗ, ПланОтгрузки.ДатаОтгрЖелат, ПланОтгрузки.КодИзделия, ПланДогСум.[Sum-Колво] AS ВПланеОтгр, ПланОтгрузки.Дефицит AS Неотгружено, Nz([Дефицит])-Nz([Sum-Колво]) AS ВклПлан
FROM ПланОтгрузки LEFT JOIN ПланДогСум ON (ПланОтгрузки.КодИзделия = ПланДогСум.[First-Изделие]) AND (ПланОтгрузки.НомСКЗ = ПланДогСум.СКЗ)
WHERE (((Nz([Дефицит])-Nz([Sum-Колво]))>0));



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

Запрос ПланОтгрузки является запросом к серверу, в возвращаемых колонках только одна колонка Дефецит.

Как решить данную проблему?
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634823
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пропишите полностью имя колонок в обеих вычисляемых полях, вместе с именем таблицы, типа:
Код: vbnet
1.
Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво])
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634832
volt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

Изменил запрос:

Код: sql
1.
2.
3.
SELECT ПланОтгрузки.НомСКЗ, ПланОтгрузки.КодДог, ПланОтгрузки.Дог_СКЗ, ПланОтгрузки.ДатаОтгрЖелат, ПланОтгрузки.КодИзделия, ПланДогСум.[Sum-Колво] AS ВПланеОтгр, ПланОтгрузки.Дефицит AS Неотгружено, Nz([Дефицит])-Nz([Sum-Колво]) AS ВклПлан
FROM ПланОтгрузки LEFT JOIN ПланДогСум ON (ПланОтгрузки.КодИзделия = ПланДогСум.[First-Изделие]) AND (ПланОтгрузки.НомСКЗ = ПланДогСум.СКЗ)
WHERE (((Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]))>0));



Таже самая ошибка
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634838
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT ПланОтгрузки.НомСКЗ
    , ПланОтгрузки.КодДог
    , ПланОтгрузки.Дог_СКЗ
    , ПланОтгрузки.ДатаОтгрЖелат
    , ПланОтгрузки.КодИзделия
    , ПланДогСум.[Sum-Колво] AS ВПланеОтгр
    , ПланОтгрузки.Дефицит AS Неотгружено
    , Nz([Дефицит])-Nz([Sum-Колво]) AS ВклПлан

FROM      ПланОтгрузки 
LEFT JOIN ПланДогСум 
       ON (ПланОтгрузки.КодИзделия = ПланДогСум.[First-Изделие]) 
      AND (ПланОтгрузки.НомСКЗ = ПланДогСум.СКЗ)

WHERE (((Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]))>0));
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634845
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voltТаже самая ошибка
Я же написал, что в двух местах менять надо
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634849
volt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

Код: sql
1.
2.
3.
SELECT ПланОтгрузки.НомСКЗ, ПланОтгрузки.КодДог, ПланОтгрузки.Дог_СКЗ, ПланОтгрузки.ДатаОтгрЖелат, ПланОтгрузки.КодИзделия, ПланДогСум.[Sum-Колво] AS ВПланеОтгр, ПланОтгрузки.Дефицит AS Неотгружено, Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]) AS ВклПлан
FROM ПланОтгрузки LEFT JOIN ПланДогСум ON (ПланОтгрузки.НомСКЗ = ПланДогСум.СКЗ) AND (ПланОтгрузки.КодИзделия = ПланДогСум.[First-Изделие])
WHERE (((Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]))>0));



Ошибка осталась
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634879
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volt,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT
 ПланОтгрузки.НомСКЗ,
 ПланОтгрузки.КодДог,
 ПланОтгрузки.Дог_СКЗ,
 ПланОтгрузки.ДатаОтгрЖелат,
 ПланОтгрузки.КодИзделия,
 ПланДогСум.[Sum-Колво] AS ВПланеОтгр,
 ПланОтгрузки.Дефицит AS Неотгружено,
 Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]) AS ВклПлан

FROM ПланОтгрузки
 LEFT JOIN ПланДогСум
 ON (ПланОтгрузки.НомСКЗ = ПланДогСум.СКЗ)
 AND (ПланОтгрузки.КодИзделия = ПланДогСум.[First-Изделие])

WHERE (((Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]))>0));



ПланДогСум почти наверняка запрос --проверьте и его
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634882
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voltПри выполнении этой выборки выдается ошибка
Подробно:
1) Что есть ПланОтгрузки и ПланДогСум ;
2) Как именно выполняется запрос?
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634894
volt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

ПланДогСум действительно запрос, но в нем отсутствует дефицит, текст запроса следующий:
Код: sql
1.
2.
3.
4.
5.
SELECT DISTINCTROW ПланДог.ВидПлана, ПланДог.МГ, Ассортимент.Наимен, Ассортимент.ТипИзд, First(План.Изделие) AS [First-Изделие], Sum(План.Колво) AS [Sum-Колво], ПланДог.Доп, ПланДог.СКЗ
FROM ПланДог INNER JOIN (Ассортимент INNER JOIN План ON Ассортимент.КодИздел = План.Изделие) ON ПланДог.НомПП = План.СвНомПП
GROUP BY ПланДог.ВидПлана, ПланДог.МГ, Ассортимент.Наимен, Ассортимент.ТипИзд, ПланДог.Доп, ПланДог.СКЗ
HAVING (((ПланДог.ВидПлана)=[Forms]![Планирование3]![ВидПл]) AND ((ПланДог.МГ)=[Forms]![Планирование3]![ПланМГ]))
ORDER BY Ассортимент.ТипИзд;



ПланОтгрузки - запрос к серверу (на сервере сделано представление)
Код: sql
1.
SELECT НомСКЗ, КодДог, НомДог, Дог_СКЗ, УслОтгр, КодИзделия, [Sum-Кол], ГазСХ, Кол, Дефецит, типИзд,ДатаОтгрЖелат, Процопл, ВклПланСроч from ПК_ПланОтгрузки



Так что только одно поле Дефицит есть. больше его нигде нет. У меня уже идей нет, в чем может дело. никаких перекрестных ссылок.
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634897
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volt,

Код: sql
1.
2.
3.
4.
SELECT НомСКЗ, КодДог, НомДог, Дог_СКЗ,
 УслОтгр, КодИзделия, [Sum-Кол], ГазСХ, Кол, Дефецит,
 типИзд,ДатаОтгрЖелат, Процопл, ВклПланСроч
 from ПК_ПланОтгрузки



ПК_ПланОтгрузки тоже запрос
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634905
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volt , уберите DISTINCTROW из ПланДогСум - после группировки оно как минимум странно...
Ещё лучше - внесите этот текст непосредственно в окончательный запрос.
Замените
Код: sql
1.
FROM ПланОтгрузки LEFT JOIN ПланДогСум ON


на
Код: sql
1.
FROM ПланОтгрузки LEFT JOIN (текст запроса ПланДогСум) AS ПланДогСум ON
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634906
volt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

ПК_ПланОтгрузки - представление на сервере
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39634910
volt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,


Поправил, как Вы и предложили, не помогло:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT ПланОтгрузки.НомСКЗ, ПланОтгрузки.КодДог, ПланОтгрузки.Дог_СКЗ, ПланОтгрузки.ДатаОтгрЖелат, ПланОтгрузки.КодИзделия, ПланДогСум.[Sum-Колво] AS ВПланеОтгр, [ПланОтгрузки].[Дефицит] AS Неотгружено, Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]) AS ВклПлан
FROM ПланОтгрузки LEFT JOIN 
(SELECT ПланДог.ВидПлана, ПланДог.МГ, Ассортимент.Наимен, Ассортимент.ТипИзд, First(План.Изделие) AS [First-Изделие], Sum(План.Колво) AS [Sum-Колво], ПланДог.Доп, ПланДог.СКЗ
FROM ПланДог INNER JOIN (Ассортимент INNER JOIN План ON Ассортимент.КодИздел = План.Изделие) ON ПланДог.НомПП = План.СвНомПП
GROUP BY ПланДог.ВидПлана, ПланДог.МГ, Ассортимент.Наимен, Ассортимент.ТипИзд, ПланДог.Доп, ПланДог.СКЗ
HAVING (((ПланДог.ВидПлана)=Forms!Планирование3!ВидПл) And ((ПланДог.МГ)=Forms!Планирование3!ПланМГ))
ORDER BY Ассортимент.ТипИзд
) as ПланДогСум ON (ПланОтгрузки.НомСКЗ = ПланДогСум.СКЗ) AND (ПланОтгрузки.КодИзделия = ПланДогСум.[First-Изделие])
WHERE (((Nz([ПланОтгрузки].[Дефицит])-Nz([ПланДогСум].[Sum-Колво]))>0));
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39635102
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда остаётся одно - тест-БД в студию.
...
Рейтинг: 0 / 0
Ошибка Ссылка на поле может относиться к полям нескольких таблиц
    #39635356
volt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Спасибо всем. Разобрался.
в выборке ПланОтгрузки поле называется дефецит,
а в искомой выборке дефицит. Поправил имя поля - все заработало...

Прошу прощения. Разбираться в чужой БД, большая проблема.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка Ссылка на поле может относиться к полям нескольких таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]