Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2010, 21:20   #11
Novi4ok_11
Форумчанин
 
Регистрация: 11.12.2010
Сообщений: 110
По умолчанию

Msg 8155, Level 16, State 2, Line 1
Для столбца 3 таблицы "a" не указан столбец.
Msg 8155, Level 16, State 2, Line 1
Для столбца 3 таблицы "b" не указан столбец.

Вот такие ошибки я не знаю как их исправить
Novi4ok_11 вне форума Ответить с цитированием
Старый 18.12.2010, 21:22   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

у, под рукой нет MS SQL сервера, чтобы открыть Ваш пример.
(Кстати, запаковав его в архив, прикрепляю к своему посту: в архиве вместо 2 Мб получается 125 кб.)

Делать нужно примерно так (примерно, так как пишу прямо в браузере, на форуме, проверить возможности нет..):
Код:
select  dv.FIO, 
     COALESCE(SUM(tv1.kol_lt),0) as SumPeriod1, 
     COALESCE(SUM(tv2.kol_lt),0) as SumPeriod2, 
     COALESCE(SUM(tv3.kol_lt),0) as SumPeriod3, 
  FROM DRVS dv LEFT OUTER JOIN  Trav tv1
                          ON dv.id_dv = tv1.id_vd
               LEFT OUTER JOIN  Trav tv2
                          ON dv.id_dv = tv2.id_vd
               LEFT OUTER JOIN  Trav tv3
                          ON dv.id_dv = tv3.id_vd
WHERE (tv1.[date] BETWEEN '20101201' AND '20101202')
  and (tv2.[date] BETWEEN '20101208' AND '20101214')
  and (tv3.[date] BETWEEN '20101215' AND '20101230')
Вложения
Тип файла: rar dr_test.rar (122.7 Кб, 5 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.12.2010, 21:29   #13
Novi4ok_11
Форумчанин
 
Регистрация: 11.12.2010
Сообщений: 110
По умолчанию

Код:
select  dv.FIO, 
     COALESCE(SUM(tv1.kol_lt),0) as SumPeriod1, 
     COALESCE(SUM(tv2.kol_lt),0) as SumPeriod2, 
     COALESCE(SUM(tv3.kol_lt),0) as SumPeriod3
  FROM DRVS dv LEFT OUTER JOIN  Trav tv1
                          ON dv.id_dv = tv1.id_vd
 
               LEFT OUTER JOIN  Trav tv2
                          ON dv.id_dv = tv2.id_vd
               LEFT OUTER JOIN  Trav tv3
                          ON dv.id_dv = tv3.id_vd
WHERE (tv1.[date] BETWEEN '20101201' AND '20101202')
  and (tv2.[date] BETWEEN '20101208' AND '20101214')
  and (tv3.[date] BETWEEN '20101215' AND '20101230')
GROUP BY FIO
Отак сделал, только добавил внизу GROUP BY FIO потому что писало
Цитата:
Столбец "DRVS.FIO" недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
То таблицу вывело но пустую
Novi4ok_11 вне форума Ответить с цитированием
Старый 18.12.2010, 21:38   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да, нелегко отлаживать запросы в браузере (это я про себя...)

ну, давайте попробуем такой вариант:
Код:
select  dv.FIO, 
     SUM(COALESCE(tv1.kol_lt,0)) as SumPeriod1, 
     SUM(COALESCE(tv2.kol_lt,0)) as SumPeriod2, 
     SUM(COALESCE(tv3.kol_lt,0)) as SumPeriod3
  FROM DRVS dv LEFT OUTER JOIN  
       (select id_vd, kol_lt from Trav
          WHERE [date] BETWEEN '20101201' AND '20101202') tv1
              ON dv.id_dv = tv1.id_vd
       LEFT OUTER JOIN        
         (select id_vd, kol_lt from Trav
          WHERE [date] BETWEEN '20101208' AND '20101214') tv2
              ON dv.id_dv = tv2.id_vd
       LEFT OUTER JOIN
         (select id_vd, kol_lt from Trav
          WHERE [date] BETWEEN '20101215' AND '20101230') tv3
                    ON dv.id_dv = tv3.id_vd
GROUP BY dv.id_dv, dv.FIO
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.12.2010, 21:41   #15
Novi4ok_11
Форумчанин
 
Регистрация: 11.12.2010
Сообщений: 110
По умолчанию

Заработало!!!! Ура!! СПАСИБО БОЛЬШОЕ Serge_Bliznykov!!! Вы супер!
Всем спасибо за помощь!!!

Последний раз редактировалось Novi4ok_11; 18.12.2010 в 21:43.
Novi4ok_11 вне форума Ответить с цитированием
Старый 18.12.2010, 21:47   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не за что!

Удачи.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос grafgrial Общие вопросы Delphi 8 19.10.2010 15:57
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
SQL запрос Oleg Romanchuk Помощь студентам 2 23.11.2009 09:42
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15