Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Простой запрос выдает ошибку (число прочтений - 1103 )
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Простой запрос выдает ошибку
12. Мая 2008 :: 11:11
Печать  
Запрос:
SELECT
Рег.Докум      [Док $Документ]
,Рег.Докум_вид Док_вид
,Рег.Фирма     [Фирма $Справочник.Фирмы]
,Рег.Позиция   Позиция
,Рег.ДатаДок   ДатаДок
,Рег.НомерДок  НомерДок
,Рег.Товар     [Авто $Справочник.Номенклатура]
,Рег.Сумма     Сумма
,Рег.Кол      Кол
,CASE WHEN Рег.Пок=1 THEN Рег.Сумма ELSE 0 END Поступление
,CASE WHEN Рег.Пок=1 THEN 0 ELSE Рег.Сумма END Продажа

FROM (
     SELECT Жур.IDDOC Докум
      , Жур.IDDOCDEF Докум_вид
           , Док.sp1005  Фирма
      , Жур.DATE_TIME_IDDOC as Позиция
      , CAST(LEFT(Жур.DATE_TIME_IDDOC, 8) as DateTime) as ДатаДок
           , Жур.DOCNO НомерДок
           , Номенклатура.ID Товар
      , ДокСтроки.sp428 Сумма
      , 1 as Пок
           , ДокСтроки.sp424 Кол
     FROM _1SJOURN AS Жур
           INNER JOIN dh434 AS Док ON Жур.IDDOC = Док.IDDOC
           INNER JOIN dt434 AS ДокСтроки ON Жур.IDDOC = ДокСтроки.IDDOC
           INNER JOIN sc33 AS Номенклатура ON ДокСтроки.sp423 = Номенклатура.ID
     WHERE  (Жур.DATE_TIME_IDDOC BETWEEN '20071201' AND '20071231Z')
         AND ((Жур.CLOSED & 1) = 1)
UNION ALL
     SELECT Жур.IDDOC Докум
      , Жур.IDDOCDEF Докум_вид
           , Док.sp1005 Фирма
      , Жур.DATE_TIME_IDDOC as Позиция
      , CAST(LEFT(Жур.DATE_TIME_IDDOC, 8) as DateTime) as ДатаДок
           , Жур.DOCNO НомерДок
           , Номенклатура.ID Товар
      , ДокСтроки.sp428 Сумма
      , 0 as Пок
           , ДокСтроки.sp424 Кол
     FROM _1SJOURN AS Жур
           INNER JOIN dh410 AS Док ON Жур.IDDOC = Док.IDDOC
           INNER JOIN dt410 AS ДокСтроки ON Жур.IDDOC = ДокСтроки.IDDOC
           INNER JOIN sc33 AS Номенклатура ON ДокСтроки.sp423 = Номенклатура.ID
     WHERE  (Жур.DATE_TIME_IDDOC BETWEEN '20071201' AND '20071231Z')
         AND ((Жур.CLOSED & 1) = 1)
) Рег
Выдает:

{D:\BASE77NEW\АНАЛИЗПРОДАЖАВТО.ERT(88)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'sp428'.
По отдельности подзапросы отрабатывают, поле sp428 - сумма табличной части, присутствует в обоих документах и одинаковой длины и точности. Что это может быть?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Простой запрос выдает ошибку
Ответ #1 - 12. Мая 2008 :: 11:44
Печать  
в исходном метазапросе вместо псевдонимов Док и ДокСтроки примени Док1,Док2 и ДокСтроки1,ДокСтроки2 для разных запросов юниона
  

1&&2&&3
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Простой запрос выдает ошибку
Ответ #2 - 12. Мая 2008 :: 12:01
Печать  
trad писал(а) 12. Мая 2008 :: 11:44:
в исходном метазапросе вместо псевдонимов Док и ДокСтроки примени Док1,Док2 и ДокСтроки1,ДокСтроки2 для разных запросов юниона


Спасибо, сработало. Не ожидал что в разных подзапросах имена не дожны повторяться. Еще раз Спасибо
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать