|
Помогите разобрать запрос SQL который выгружает документы в 1С | ☑ | ||
---|---|---|---|---|
0
Aneya
11.12.13
✎
14:15
|
strsql = "SELECT T_Headers.ID, T_Headers.TDate, T_Headers.DocNumber, T_Headers.Comments, T_Objects.ID AS otkuda_id, " & _
"T_Objects.ObjDesc AS otkuda, T_Objects_1.ID AS kuda_id, T_Objects_1.ObjDesc AS kuda, " & _ "Sum([Quantity]) AS кол, Sum([Quantity]*[CostNational]) AS sebest, " & _ "Sum([Quantity]*[RetailPrice]) AS roznica, Sum([Quantity]*([CostNational]-[VATValue])) AS безНДС, " & _ "T_Objects.ID_ClientTyp AS otkuda_type, T_Objects_1.ID_ClientTyp AS kuda_type " & _ "FROM ((T_Headers INNER JOIN T_Objects ON T_Headers.ID_Objects = T_Objects.ID) " & _ "INNER JOIN T_Transactions ON T_Headers.ID = T_Transactions.ID_Headers) " & _ "INNER JOIN T_Objects AS T_Objects_1 ON T_Headers.ID_ObjectsContr = T_Objects_1.ID " & _ "WHERE T_Headers.TDate >= '" & godmesden(MyDataN) & "' " & _ "And T_Headers.TDate <= '" & godmesden(MyDataK) & "' " & _ "And T_Headers.Status = 1 " & _ "And (T_Headers.ID_Moves = 5) And T_Objects.ID_ObjTyp = 1 And T_Objects_1.ID_ObjTyp = 1 " & _ "And (T_Headers.SpecNo <> 1 Or T_Headers.SpecNo Is Null) " & _ "GROUP BY T_Headers.ID, T_Headers.TDate, T_Headers.Comments, T_Objects.ID, T_Headers.DocNumber, T_Objects.ObjDesc, " & _ "T_Objects_1.ID, T_Objects_1.ObjDesc, " & _ "T_Objects.ID_ClientTyp, T_Objects_1.ID_ClientTyp " & _ "ORDER BY T_Headers.TDate, T_Objects.ID, T_Headers.DocNumber" strsql2 = "SELECT T_Headers.ID, T_Headers.TDate, T_Headers.DocNumber, T_Headers.Comments, T_Objects.ID AS Kuda_id, " & _ "T_Objects.ObjDesc AS Kuda, T_Objects_1.ID AS Otkuda_id, T_Objects_1.ObjDesc AS Otkuda, " & _ "Sum([Quantity]) AS кол, Sum([Quantity]*[CostNational]) AS sebest, " & _ "Sum([Quantity]*[RetailPrice]) AS roznica, Sum([Quantity]*([CostNational]-[VATValue])) AS безНДС, " & _ "T_Objects.ID_ClientTyp AS kuda_type, T_Objects_1.ID_ClientTyp AS otkuda_type " & _ "FROM ((T_Headers INNER JOIN T_Objects ON T_Headers.ID_Objects = T_Objects.ID) " & _ "INNER JOIN T_Transactions ON T_Headers.ID = T_Transactions.ID_Headers) " & _ "INNER JOIN T_Objects AS T_Objects_1 ON T_Headers.ID_ObjectsContr = T_Objects_1.ID " & _ "WHERE T_Headers.TDate >= '" & godmesden(MyDataN) & "' " & _ "And T_Headers.TDate <= '" & godmesden(MyDataK) & "' " & _ "And T_Headers.Status = 1 " & _ "And (T_Headers.ID_Moves = 2) And T_Objects.ID_ObjTyp = 1 And T_Objects_1.ID_ObjTyp = 1 " & _ "And (T_Headers.SpecNo <> 1 Or T_Headers.SpecNo Is Null) " & _ "GROUP BY T_Headers.ID, T_Headers.TDate, T_Headers.Comments, T_Objects.ID, T_Headers.DocNumber, T_Objects.ObjDesc, " & _ "T_Objects_1.ID, T_Objects_1.ObjDesc, " & _ "T_Objects.ID_ClientTyp, T_Objects_1.ID_ClientTyp " & _ "ORDER BY T_Headers.TDate, T_Objects_1.ID, T_Headers.DocNumber" Не могу понять почему во FROME не указывается таблица, и что за операция "& _"? |
|||
1
1Сергей
11.12.13
✎
14:16
|
"& _" - перенос строки
|
|||
2
Sammo
11.12.13
✎
14:20
|
Что значит не указывается таблица. Вполне себе указывается.
T_Headers + внытренние соединения |
|||
3
1Сергей
11.12.13
✎
14:24
|
а вообще, рекомендую Notepad++ с плагином Poor Mans TSQL Formatter.
Вот твой запрос, отформатированный этой штукой:
|
|||
4
Aneya
11.12.13
✎
14:27
|
Sammo , но вроде должно быть так
FROM T_Headers (INNER JOIN T_Objects ON T_Headers.ID_Objects = T_Objects.ID) а не FROM ((T_Headers INNER JOIN T_Objects ON T_Headers.ID_Objects = T_Objects.ID)) |
|||
5
Aneya
11.12.13
✎
14:31
|
Sammo, просто запрос не мой, сказали его разобрать, интересно, что указывается всего 1 таблица, а в выборке учавствует несколько
|
|||
6
Aneya
11.12.13
✎
14:33
|
Сергей, спасибо, но что -то запрос не хочет работать в MSSQL
|
|||
7
Aneya
11.12.13
✎
14:35
|
(3) Сергей, спасибо, но что -то запрос не хочет работать в MSSQL
|
|||
8
Aneya
11.12.13
✎
14:36
|
(2) Sammo , но вроде должно быть так
FROM T_Headers (INNER JOIN T_Objects ON T_Headers.ID_Objects = T_Objects.ID) а не FROM ((T_Headers INNER JOIN T_Objects ON T_Headers.ID_Objects = T_Objects.ID)), |
|||
9
Aneya
11.12.13
✎
14:36
|
(2) просто запрос не мой, сказали его разобрать, интересно, что указывается всего 1 таблица, а в выборке учавствует несколько
|
|||
10
Ёпрст
11.12.13
✎
14:47
|
(8) скобки там явно не в том месте или пропущен селект
|
|||
11
Aneya
11.12.13
✎
14:49
|
(10) а если вместо изначального запроса
вместо inner join применю where? Например SELECT T_Headers.ID ,T_Headers.TDate ,T_Headers.DocNumber ,T_Headers.Comments ,T_Objects.ID AS Kuda_id ,T_Objects.ObjDesc AS KudaName ,T_Objects_1.ID AS Otkuda_id ,T_Objects_1.ObjDesc AS OtkudaName ,Sum([Quantity]) AS кол ,Sum([Quantity] * [CostNational]) AS sebest ,Sum([Quantity] * [RetailPrice]) AS roznica ,Sum([Quantity] * ([CostNational] - [VATValue])) AS безНДС ,T_Objects.ID_ClientTyp AS kuda_type ,T_Objects_1.ID_ClientTyp AS otkuda_type FROM [TradeX].[dbo].[T_Headers],[TradeX].[dbo].[T_Objects],[TradeX].[dbo].[T_Objects] as T_Objects_1, [TradeX].[dbo].[T_Transactions] WHERE T_Headers.TDate >= '31.01.2010' AND T_Headers.TDate <= '31.12.2010' AND T_Headers.STATUS = 1 AND (T_Headers.ID_Moves = 2) AND T_Objects.ID_ObjTyp = 1 AND T_Objects_1.ID_ObjTyp = 1 AND ( T_Headers.SpecNo <> 1 OR T_Headers.SpecNo IS NULL ) and T_Headers.ID_Objects = T_Objects.ID and T_Headers.ID = T_Transactions.ID_Headers and T_Headers.ID_ObjectsContr = T_Objects_1.ID GROUP BY T_Headers.ID ,T_Headers.TDate ,T_Headers.Comments ,T_Objects.ID ,T_Headers.DocNumber ,T_Objects.ObjDesc ,T_Objects_1.ID ,T_Objects_1.ObjDesc ,T_Objects.ID_ClientTyp ,T_Objects_1.ID_ClientTyp ORDER BY T_Headers.TDate ,T_Objects_1.ID ,T_Headers.DocNumber |
|||
12
1Сергей
11.12.13
✎
14:52
|
(7) в каком смысле "не хочет"?
|
|||
13
Aneya
11.12.13
✎
14:55
|
(12) аа нет, все ок, спасибо вам большое)))
|
|||
14
Aneya
11.12.13
✎
15:01
|
Всем спасибо, разобралась с помощью 1Сергея
|
|||
15
МихаилМ
11.12.13
✎
16:04
|
группировка по комментарию - моветон
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |