Имя: Пароль:
1C
 
MIN and MAX в запросе SQL
0 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
1 sapphire
 
11.04.17
11:53
Вероятно, что есть записи с AcctLive.BUSDATE IS NULL
2 Вафель
 
11.04.17
11:57
а точно именно на этом поле ошибка, по тексту не понятно
3 Вафель
 
11.04.17
11:57
ну и мин макс не занимается преобразованием
4 sapphire
 
11.04.17
11:58
(3) Да вот тож удивляет
5 ig0z
 
11.04.17
12:00
(2) (3) именно на этой строчке преобразовывал в

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

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

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

|    '' 'ДатаЗаезда', '' 'ДатаВыезда',
9 ig0z
 
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)у тебя мин теперь чему равен?
12 ig0z
 
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) так он у тебя всегда будет такой. Так и хотел? тогда зачем его искать?
14 ig0z
 
11.04.17
13:20
(13) не не всё что нужно я себе уже сделал единственное на NULL заменил '01.01.0001 0:00:00'
15 ig0z
 
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


что не так?
16 ig0z
 
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
19 ig0z
 
14.04.17
15:06
(17) чисто пример делал
20 ig0z
 
16.04.17
13:57
(15) DATEADD(day,1,MAXandMIN.DateOut) 'ДатаВыезда'
Закон Брукера: Даже маленькая практика стоит большой теории.