powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запросом из четырёх таблиц получить строку, отмеченную галочкой
5 сообщений из 5, страница 1 из 1
Запросом из четырёх таблиц получить строку, отмеченную галочкой
    #39576993
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 4 таблицы. Только в одной запись отмечена галочкой (см. прикреплённый пример).
Можно ли запросом проверить эти таблицы на наличие галочки и получить только эту отмеченную запись?
В данном случае должна получиться запись Топор 2
...
Рейтинг: 0 / 0
Запросом из четырёх таблиц получить строку, отмеченную галочкой
    #39576999
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNION
...
Рейтинг: 0 / 0
Запросом из четырёх таблиц получить строку, отмеченную галочкой
    #39580005
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С UNION записи просто добавляются без сортировки по ID, пустые значения, где не стоит V тоже добавляются.
...
Рейтинг: 0 / 0
Запросом из четырёх таблиц получить строку, отмеченную галочкой
    #39580008
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
SELECT *
FROM (SELECT m.ID, VMat AS V, NPart AS N, MDescription AS Description FROM tblMain AS m 
LEFT JOIN (SELECT MatID, VMat, NPart, MDescription FROM tblMaterial) AS mat ON m.ID = mat.MatID
UNION ALL
SELECT m.ID, VLab AS V, NLabPos AS N, LDescription AS Description FROM tblMain AS m 
LEFT JOIN (SELECT LabID, VLab, NLabPos, LDescription FROM tblLabour) AS lab ON m.ID = lab.LabID) t WHERE t.V = 1 GROUP BY t.ID, t.V, t.N, t.Description



Потом начинаю эту выборку джойнить с главной таблицей и записи из этой выборки не добавляются

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT m.ID, NClaim, LEFT(TypeClaim, 4) AS TypeClaim, DRepair, NZN, VIN, Customer, PrObr, KI, DamageType
 FROM tblMain AS m LEFT JOIN tblDamage AS d ON m.ID = d.DamID
LEFT JOIN (SELECT *
FROM (SELECT m.ID, VMat AS V, NPart AS N, MDescription AS Description FROM tblMain AS m 
LEFT JOIN (SELECT MatID, VMat, NPart, MDescription FROM tblMaterial) AS mat ON m.ID = mat.MatID
UNION ALL
SELECT m.ID, VLab AS V, NLabPos AS N, LDescription AS Description FROM tblMain AS m 
LEFT JOIN (SELECT LabID, VLab, NLabPos, LDescription FROM tblLabour) AS lab ON m.ID = lab.LabID) t WHERE t.V = 1 GROUP BY t.ID, t.V, t.N, t.Description) AS temp ON m.ID = temp.ID
...
Рейтинг: 0 / 0
Запросом из четырёх таблиц получить строку, отмеченную галочкой
    #39580009
ypmail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел ошибку: забыл перечислить колонки временной таблицы в select
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT m.ID, NClaim, LEFT(TypeClaim, 4) AS TypeClaim, DRepair, NZN, VIN, Customer, PrObr, KI, DamageType, temp.V, temp.N, temp.Description
FROM tblMain AS m LEFT JOIN tblDamage AS d ON m.ID = d.DamID
LEFT JOIN (SELECT *
FROM (SELECT m.ID, VMat AS V, NPart AS N, MDescription AS Description FROM tblMain AS m 
LEFT JOIN (SELECT MatID, VMat, NPart, MDescription FROM tblMaterial) AS mat ON m.ID = mat.MatID
UNION ALL
SELECT m.ID, VLab AS V, NLabPos AS N, LDescription AS Description FROM tblMain AS m 
LEFT JOIN (SELECT LabID, VLab, NLabPos, LDescription FROM tblLabour) AS lab ON m.ID = lab.LabID) t WHERE t.V = 1 GROUP BY t.ID, t.V, t.N, t.Description) AS temp ON m.ID = temp.ID
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запросом из четырёх таблиц получить строку, отмеченную галочкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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