Имя: Пароль:
1C
1C 7.7
v7: Объединить 2 запроса (1С++)
0 Ganiev
 
10.04.13
06:42
Здравствуйте есть запрос1:
   |SELECT Цены.ID [Ссылка $Справочник.Цены]
   |  , Цены.ISMARK ПометкаУдаления
   |  , Цены.PARENTEXT [Владелец $Справочник.Номенклатура]
   |  , $Цены.Валюта [Валюта $Справочник.Валюты]
   |  , $ПоследнееЗначение.Цены.Единица(Цены.ID, :ВыбДата) [Единица $Справочник.Единицы]
   |  , $Цены.Процент Процент
   |  , $Цены.ТипЦен [ТипЦен $Справочник.ТипыЦен]
   |  , $ПоследнееЗначение.Цены.Цена(Цены.ID, :ВыбДата) Цена
   |FROM $Справочник.Цены Цены as Цены With (NOLOCK)

И Зпрос2:
   |SELECT Цены2.ID [Ссылка $Справочник.Цены]
   |  , Цены2.ISMARK ПометкаУдаления
   |  , Цены2.PARENTEXT [Владелец $Справочник.Номенклатура]
   |  , $Цены2.Валюта [Валюта $Справочник.Валюты]
   |  , $ПоследнееЗначение.Цены.Единица(Цены.ID, :ВыбДата) [Единица $Справочник.Единицы]
   |  , $Цены2.Процент Процент
   |  , $Цены2.ТипЦен [ТипЦен $Справочник.ТипыЦен]
   |  , $ПоследнееЗначение.Цены.Цена(Цены2.ID, :ВыбДата) Цена2
   |FROM $Справочник.Цены Цены2 AS Цены2 With (NOLOCK)

как их объединить? Необходимо из 1 запроса Цена1 из 2 запроса цена2 объединение по "Inner".
1 Wobland
 
10.04.13
06:48
>объединение по "Inner".
это называется join

from (select) as tab1 inner join (select) as tab2

//запросы не смотрел
2 AleksAnt
 
10.04.13
06:49
какую таблицу в итоге ты хочешь получить?
3 Ganiev
 
10.04.13
06:59
С номенклатурой, цена, цена2
4 Ganiev
 
10.04.13
06:59
|  (SELECT Цены.ID [Ссылка $Справочник.Цены]
   |  , Цены.ISMARK ПометкаУдаления
   |  , Цены.PARENTEXT [Владелец $Справочник.Номенклатура]
   |  , $Цены.Валюта [Валюта $Справочник.Валюты]
   |  , $ПоследнееЗначение.Цены.Единица(Цены.ID, :ВыбДата) [Единица $Справочник.Единицы]
   |  , $Цены.Процент Процент
   |  , $Цены.ТипЦен [ТипЦен $Справочник.ТипыЦен]
   |  , $ПоследнееЗначение.Цены.Цена(Цены.ID, :ВыбДата) Цена
   |FROM $Справочник.Цены AS Цены) as Цены
   |
   |INNER JOIN
   |  (SELECT Цены2.ID [Ссылка $Справочник.Цены]
   |  , Цены2.ISMARK ПометкаУдаления
   |  , Цены2.PARENTEXT [Владелец $Справочник.Номенклатура]
   |  , $Цены2.Валюта [Валюта $Справочник.Валюты]
   |  , $ПоследнееЗначение.Цены.Единица(Цены.ID, :ВыбДата) [Единица $Справочник.Единицы]
   |  , $Цены2.Процент Процент
   |  , $Цены2.ТипЦен [ТипЦен $Справочник.ТипыЦен]
   |  , $ПоследнееЗначение.Цены.Цена(Цены2.ID, :ВыбДата) Цена2
   |FROM $Справочник.Цены AS Цены2) as Цены2
   |  
   //|ON таб1.Владелец T=таб2.Владелец
   |WHERE (таб2.Владелец  = :Номенклатура)
   |  AND (таб2.ТипЦен = :ТипЦен2)
   |  AND  (таб1.ТипЦен = :ТипЦен)
Ругается на "as"
5 Wobland
 
10.04.13
07:02
(4) бывает..
6 Ganiev
 
10.04.13
07:14
Что не так???
|SELECT
       |    Таб1.Цена as Ц1
       |    ,Таб2.Цена2 as Ц2
       |From
       |
       |
       |                (SELECT Цены.ID [Ссылка $Справочник.Цены]
       |                    , Цены.PARENTEXT [Владелец $Справочник.Номенклатура]
       |                    , $Цены.Процент Процент
       |                    , $Цены.ТипЦен [ТипЦен $Справочник.ТипыЦен]
       |                    , $ПоследнееЗначение.Цены.Цена(Цены.ID, :ВыбДата) Цена
       |                FROM $Справочник.Цены Цены
       |                Where Цены.PARENTEXT = :Номенклатура
       |                        and $Цены.ТипЦен = :ТипЦен) as Таб1
       |
       |INNER JOIN
       |                (SELECT Цены2.ID [Ссылка $Справочник.Цены]
       |                    , Цены2.PARENTEXT [Владелец $Справочник.Номенклатура]
       |                    , $Цены2.Процент Процент
       |                    , $Цены2.ТипЦен [ТипЦен $Справочник.ТипыЦен]
       |                    , $ПоследнееЗначение.Цены.Цена(Цены2.ID, :ВыбДата) Цена2
       |                FROM $Справочник.Цены Цены2
       |                Where Цены.PARENTEXT = :Номенклатура
       |                        and $Цены2.ТипЦен = :ТипЦен2) as Таб2
       |
       |ON Таб1.Владелец = таб2.Владелец
       |";

Выдает ошибку: The column prefix 'Цены' does not match with a table name or alias name used in the q
7 Wobland
 
10.04.13
07:19
вот это не так: Where Цены.PARENTEXT
8 Ganiev
 
10.04.13
07:24
По чему не правильно не понял!
9 AleksAnt
 
10.04.13
07:24
(6) настоятельно рекомендую почитать учебник по SQL
10 Ganiev
 
10.04.13
07:24
отдельно отрабатывают оба запроса!
11 Wobland
 
10.04.13
07:24
(8) потому что неясно, что такое Цены
12 Ganiev
 
10.04.13
07:25
FROM $Справочник.Цены as Цены
13 Wobland
 
10.04.13
07:27
(12) FROM $Справочник.Цены AS Цены2) as Цены2
14 Ganiev
 
10.04.13
07:38
А услови где ставить?
15 Wobland
 
10.04.13
07:49
вопрос не понял
16 Ganiev
 
10.04.13
07:49
|SELECT
       |    Таб1.Цена as Ц1
       |    ,Таб1.Цена2 as Ц2
       |From
       |
       |
       |                ((SELECT Цены.ID [Ссылка $Справочник.Цены]
       |                    , Цены.PARENTEXT [Владелец $Справочник.Номенклатура]
       |                    , $Цены.ТипЦен [ТипЦен $Справочник.ТипыЦен]
       |                    , $ПоследнееЗначение.Цены.Цена(Цены.ID, :ВыбДата) Цена
       |                FROM $Справочник.Цены as Цены)
       |                
       |
       |INNER JOIN
       |                (SELECT Цены2.ID [Ссылка $Справочник.Цены]
       |                    , Цены2.PARENTEXT [Владелец $Справочник.Номенклатура]
       |                    , $Цены2.ТипЦен [ТипЦен2 $Справочник.ТипыЦен]
       |                    , $ПоследнееЗначение.Цены.Цена(Цены2.ID, :ВыбДата) Цена2
       |                FROM $Справочник.Цены as Цены2)
       |                
       |
       |                ON Цены.Владелец = Цены2.Владелец) as Таб1
       |Where  Таб1.Владелец = :Номенклатура
       |        And Таб1.ТипЦен = :ТипЦен
       |        And Таб1.ТипЦен2 = :ТипЦен2
       |"; похоже на правду?
17 Ganiev
 
10.04.13
07:50
ругается:Incorrect syntax near the keyword 'INNER'.
18 Wobland
 
10.04.13
07:51
первый запрос не хочешь обозвать?
19 Wobland
 
10.04.13
07:52
лучше вернись к (6)
20 vinogradъ
 
10.04.13
07:59
21 Mikeware
 
10.04.13
08:00
Банананизм на марше..
22 Ganiev
 
10.04.13
08:03
СПС разобрался
23 Wobland
 
10.04.13
08:11
не, bananan уникален ;)
24 toypaul
 
гуру
10.04.13
08:12
(20) правильный ответ был в {7} в {6} только с применением {4}