Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
2 / 2 / 0
Регистрация: 01.01.2010
Сообщений: 189

Проблемы при присоединении таблиц в sql

22.02.2020, 18:53. Показов 3411. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите, мне надо соединить ряд таблиц в одну

я пишу такой запрос
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
SELECT 
     
      asutNbd_violations.IncidentTypeID
      ,asutNbd_violations.IncidentID
      ,asutNbd_violations.ViolationDate as Date_NAR
      ,asutNbd_violations.BrigadeEnterpriseID
      ,asutNbd_violations.ViolationID as ID_SP_NAR,
 
      incidents.IncidentDate,
      incidents.RouteID,
 
      incidents.PersID,
      -- incidents.CasseteID,
 
      incidents.MIPersID as 'машинист инструктор'
 
     ,routes_personal.RouteID
      ,routes_personal.PersRegID
      ,routes_personal.RoutePostID
      ,routes_personal.BeginDate
      ,routes_personal.EndDate
      ,routes_personal.RouteDate
      
 
    
     ,personal_registration.EnterpriseID
 
      --,personal_registration.DateFrom 
     , CASE 
        WHEN DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) < 1 THEN 'group_0to1y'
        WHEN DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) >= 1 AND DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) < 4 THEN 'group_1to3y'
        WHEN DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) >= 4 AND DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) < 8 THEN 'group_3to8y'
        WHEN DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) >= 8 AND DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) < 12 THEN 'group_8to12y'
        WHEN DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) >= 12 AND DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) < 20 THEN 'group_12to20y'
        WHEN DATEDIFF(yyyy, personal_registration.DateFrom, getdate()) >= 20 THEN 'group_20y'
        ELSE NULL 
      END AS DateFrom
      ,personal_registration.DateTo
      ,personal_registration.TabNum
      ,personal_registration.IsDetached as 'уволен или нет'
 
 
 
 
      ,personal.LastName
      ,personal.FirstName
      ,personal.PatrName
      ,personal.CurrEnterpriseID  as KOD_DEPO
      ,personal.CurrDateTo
      ,personal.CurrTabNum
      ,personal.CurrIsDetached
 
      ,personal.MainTabNum as 'основной персонал это табельники людей'
 
    FROM asutNbd_violations 
            --получаем табельники , ФИО, а также лиц которые есть в инциденте
        inner JOIN personal_registration AS PR5 ON incidents.PersID = PR5.[PersID]
                -- затем получаем код деп
                inner JOIN personal ON personal_registration.[DateTo] = personal.[CurrDateTo]
        and personal_registration.[TabNum] = personal.[CurrTabNum]
    -- затем получаем id sp nar, date nar, MI
        inner JOIN incidents ON asutNbd_violations.CasseteID = incidents.CasseteID
 
 -- затем получаем код дороги и дату начала -конца
        inner JOIN routes_personal ON incidents.RouteID  = routes_personal.RouteID
        inner JOIN routes_personal ON [report_routesIssue].[RouteDate] = routes_personal.[RouteDate]
            inner JOIN incidents ON [report_routesIssue].[RouteDate] = incidents.IncidentDate
ошибка

T-SQL
1
2
3
4
5
6
7
8
Сообщение 4104, уровень 16, состояние 1, строка 57
The multi-part identifier "incidents.PersID" could not be bound.
Сообщение 4104, уровень 16, состояние 1, строка 59
The multi-part identifier "personal_registration.DateTo" could not be bound.
Сообщение 4104, уровень 16, состояние 1, строка 60
The multi-part identifier "personal_registration.TabNum" could not be bound.
Сообщение 1013, уровень 16, состояние 1, строка 1
The objects "routes_personal" and "routes_personal" in the FROM clause have the same exposed names. Use correlation names to distinguish them.
как мне правильно соединить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2020, 18:53
Ответы с готовыми решениями:

ms sql express 2005 отказанно в доступе при присоединении бд
здравствуйте. у меня такая проблема: после переустановки win7, не получается присоединить ранее созданную БД. ошибка:...

Ошибка при присоединении БД
Добрый день, пытаюсь присоединить базу данных созданную в sql server 2008 r2 в sql server 2008 r2. Но вылетает ошибка ЗАГОЛОВОК:...

Сбой при присоединении отладчика proteusdebugengine
ребята помогите нисчего начало выдавать ошибку на VB 2010

6
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,157
Записей в блоге: 3
22.02.2020, 19:18
ты несколько раз джойнишь одинаковые таблицы

если хочешь что бы это срабатывало - задавай алиасы
1
2 / 2 / 0
Регистрация: 01.01.2010
Сообщений: 189
23.02.2020, 11:53  [ТС]
qwertehok, а как мне задать алиасы? Можешь показать на примере одной строчки
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
23.02.2020, 13:13
inner JOIN routes_personal rp ON incidents.RouteID = rp.RouteID
1
2 / 2 / 0
Регистрация: 01.01.2010
Сообщений: 189
24.02.2020, 13:40  [ТС]
вроде с алиасами стало получаться, но никак не могу понять что делать с этой таблицей
inner JOIN incidents rp2 ON [report_send230Fail].RouteID = rp2.RouteID
and [report_send230Fail].Date = rp2.IncidentDate
[report_send230Fail] красным помечена. Как с ней быть?
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
SELECT 
     
      asutNbd_violations.IncidentTypeID
      ,asutNbd_violations.IncidentID
      ,asutNbd_violations.ViolationDate as Date_NAR
      ,asutNbd_violations.BrigadeEnterpriseID
      ,asutNbd_violations.ViolationID as ID_SP_NAR,
 
      rp.IncidentDate,
     rp. RouteID,
 
      rp..PersID,
      -- incidents.CasseteID,
 
      rp.MIPersID as 'машинист инструктор'
 
    /* ,routes_personal.RouteID
      ,routes_personal.PersRegID
      ,routes_personal.RoutePostID
      ,routes_personal.BeginDate
      ,routes_personal.EndDate
      ,routes_personal.RouteDate*/
      
            ,[report_send230Fail].[Date] 
      ,[report_send230Fail].[RouteID]
      ,[report_send230Fail].[RoadID]
      ,[report_send230Fail].[StationID]
      ,[report_send230Fail].[MashPersRegID]
      ,[report_send230Fail].[KokrsID]
      ,[report_send230Fail].[SpsID]
      ,[report_send230Fail].[EnterpriseID]
    
     ,pr5.EnterpriseID
 
      --,personal_registration.DateFrom 
     , CASE 
        WHEN DATEDIFF(yyyy, pr5.DateFrom, getdate()) < 1 THEN 'group_0to1y'
        WHEN DATEDIFF(yyyy, pr5.DateFrom, getdate()) >= 1 AND DATEDIFF(yyyy, pr5.DateFrom, getdate()) < 4 THEN 'group_1to3y'
        WHEN DATEDIFF(yyyy, pr5.DateFrom, getdate()) >= 4 AND DATEDIFF(yyyy, pr5.DateFrom, getdate()) < 8 THEN 'group_3to8y'
        WHEN DATEDIFF(yyyy, pr5.DateFrom, getdate()) >= 8 AND DATEDIFF(yyyy, pr5.DateFrom, getdate()) < 12 THEN 'group_8to12y'
        WHEN DATEDIFF(yyyy, pr5.DateFrom, getdate()) >= 12 AND DATEDIFF(yyyy, pr5.DateFrom, getdate()) < 20 THEN 'group_12to20y'
        WHEN DATEDIFF(yyyy, pr5.DateFrom, getdate()) >= 20 THEN 'group_20y'
        ELSE NULL 
      END AS DateFrom
      ,pr5.DateTo
      ,pr5.TabNum
      ,pr5.IsDetached as 'уволен или нет'
 
 
 
 
      ,personal.LastName
      ,personal.FirstName
      ,personal.PatrName
      ,personal.CurrEnterpriseID  as KOD_DEPO
      ,personal.CurrDateTo
      ,personal.CurrTabNum
      ,personal.CurrIsDetached
 
      ,personal.MainTabNum as 'основной персонал это табельники людей'
 
    FROM asutNbd_violations 
 
 
 
        inner JOIN incidents rp2 ON [report_send230Fail].RouteID = rp2.RouteID
        and [report_send230Fail].Date = rp2.IncidentDate
            --получаем табельники , ФИО, а также лиц которые есть в инциденте
        inner JOIN personal_registration AS PR5 ON rp2.PersID = PR5.[PersID]
                -- затем получаем код деп
                inner JOIN personal ON pr5.[DateTo] = personal.[CurrDateTo]
        and pr5.[TabNum] = personal.[CurrTabNum]
    -- затем получаем id sp nar, date nar, MI
        inner JOIN incidents rp ON asutNbd_violations.CasseteID = rp.CasseteID
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
24.02.2020, 20:35
потрудитесь выражаться яснее
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
24.02.2020, 21:51
psychologist, что такое report_send230Fail ???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2020, 21:51
Помогаю со студенческими работами здесь

При присоединении секции обрезается текст
Вроде бы тут уже обсуждали, но вот не могу найти Такая проблемка: у меня есть вертикальная секция, и она присоединяется несколько раз...

Зависает компьютер при присоединении флешки
Здраствуйте. Столкнулся с токой проблемой.Перестает реагировать мышка и клава на любые команды,после подключени к любому разъему,будь то...

Ошибка при присоединении базы данных
Пытаюсь загрузить базу данных в Microsoft SQL Server 2008. при добавлении выдается ошибка! При выполнении инструкции или пакета...

Проблемы с запросом из нескольких таблиц при совпадении имени полей
Здравствуйте. Собственно сабж. Структура табл. kat CREATE TABLE IF NOT EXISTS `kat` ( `kod_kat` int(11) NOT NULL AUTO_INCREMENT, ...

При присоединении дополнительного винчестера win7 максимальная не запускается
win7 не грузится когда я присоединяю еще один жесткий ide на 500гб (биос его видит), без него грузится вчера соединял дополнительно...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru