Вход | Регистрация

1С:Предприятие ::

Метки: 

MIN and MAX в запросе SQL

Я
   ig0z
 
11.04.17 - 11:48
Запрос из 1С в SQL, выдает ошибку на взятие Минимума и Максимума из-за типа данных, как преобразовать в нужный тип?
Пробовал примеры преобразования с форумов SQL, как-то не помогло ...

Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Sybase][ODBC Driver][Adaptive Server Anywhere]Невозможно преобразовать  в timestamp

|    MIN(AcctLive.BUSDATE) 'ДатаЗаезда', MAX(AcctLive.BUSDATE) 'ДатаВыезда',

пример данных колонки:
BUSDATE
10.03.2017 0:00:00
15.03.2017 0:00:00
29.03.2017 0:00:00
29.03.2017 0:00:00
29.03.2017 0:00:00
 
 
   sapphire
 
1 - 11.04.17 - 11:53
Вероятно, что есть записи с AcctLive.BUSDATE IS NULL
   Вафель
 
2 - 11.04.17 - 11:57
а точно именно на этом поле ошибка, по тексту не понятно
   Вафель
 
3 - 11.04.17 - 11:57
ну и мин макс не занимается преобразованием
   sapphire
 
4 - 11.04.17 - 11:58
(3) Да вот тож удивляет
   ig0z
 
5 - 11.04.17 - 12:00
(2) (3) именно на этой строчке преобразовывал в
//|    MIN(cast(AcctLive.BUSDATE as date)) 'ДатаЗаезда', MAX(cast(AcctLive.BUSDATE as date)) 'ДатаВыезда',


и ругается на формат почему-то timestamp хотя там дата
   ig0z
 
6 - 11.04.17 - 12:02
(5) именно на этой строчке ошибка, преобразовывал в другие форматы:

//|    MIN(cast(AcctLive.BUSDATE as date)) 'ДатаЗаезда', MAX(cast(AcctLive.BUSDATE as date)) 'ДатаВыезда',
   Вафель
 
7 - 11.04.17 - 12:11
а без каста?
   ig0z
 
8 - 11.04.17 - 12:16
всё на много проще в UNION ALL

|    '' 'ДатаЗаезда', '' 'ДатаВыезда',
   ig0z
 
9 - 11.04.17 - 12:19
Заменил на 
    |    '01.01.0001 0:00:00' 'ДатаЗаезда','01.01.0001 0:00:00' 'ДатаВыезда',

и заработало
   Вафель
 
10 - 11.04.17 - 12:30
Лучше
NULL 'ДатаЗаезда'
 
  Рекламное место пустует
   Вафель
 
11 - 11.04.17 - 12:30
(9)у тебя мин теперь чему равен?
   ig0z
 
12 - 11.04.17 - 12:59
(11) в смысле? то что хотел

(10)
SQL '01.01.0001 0:00:00' = 1C '01.01.1901 0:00:00'
   Вафель
 
13 - 11.04.17 - 13:16
(12) так он у тебя всегда будет такой. Так и хотел? тогда зачем его искать?
   ig0z
 
14 - 11.04.17 - 13:20
(13) не не всё что нужно я себе уже сделал единственное на NULL заменил '01.01.0001 0:00:00'
   ig0z
 
15 - 11.04.17 - 14:42
блин в добавление данных другие косяки вплывают и понять не могу почему
//|    MAXandMIN.DateIn    'ДатаЗаезда', DATE_ADD(MAXandMIN.DateOut, INTERVAL 1 DAY)    'ДатаВыезда',

Ошибка:Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Sybase][ODBC Driver][Adaptive Server Anywhere]Синтаксическая ошибка около '1' подсоединено 67


что не так?
   ig0z
 
16 - 14.04.17 - 13:11
как объеденные таблицы сделать виртуальной
обычные делал так:
|IF OBJECT_ID('tempdb..#NoUsez') IS NOT NULL DROP TABLE #InvoiceInfoUnic
|SELECT DISTINCT CASE WHEN AcumS.ACCOUNTID IS NULL THEN ContenByAccc.ACCOUNTID END 'NoUsezz'
|INTO    #NoUsez
|FROM Edeldb.Admin.ContentByAccount AS ContenByAccc
|        LEFT JOIN Edeldb.Admin.ContentByAccount AS AcumS ON AcumS.AccountID = ContenByAccc.AccountID 
|                AND AcumS.ARTIKELNAME = 'Частичная оплата'
|WHERE    ContenByAccc.OPERATIONID = 19



|SELECT *
|FROM Edeldb.Admin.ContentByAccount     AS ConAcc
|UNION ALL
|SELECT * 
|Edeldb.Admin.ALL_DEBITOR_PAYMENT     AS DebPay
|UNION ALL
|SELECT * 
|FROM Edeldb.Admin.CASH_PAYMENT     AS CashPay
   Ёпрст
 
17 - 14.04.17 - 13:16
(16) куды from во втором юнионе подевал ?
   Ёпрст
 
18 - 14.04.17 - 13:17
(16) точно так же select into
   ig0z
 
19 - 14.04.17 - 15:06
(17) чисто пример делал
   ig0z
 
20 - 16.04.17 - 13:57
(15) DATEADD(day,1,MAXandMIN.DateOut) 'ДатаВыезда'


Список тем форума
Рекламное место пустует   Рекламное место пустует
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует