Имя: Пароль:
1C
1С v8
Слияние 2 строк в запросе
,
0 Dmitriy_76
 
24.09.15
14:23
Простой запрос :

ВЫБРАТЬ
    Валюта1.Наименование +"+"+ Валюта2.Наименование   КАК Поле1
ИЗ
    (ВЫБРАТЬ
        Валюты.Наименование КАК Наименование
    ИЗ
        Справочник.Валюты КАК Валюты
    ГДЕ
        Валюты.Ссылка = &Ссылка1) КАК Валюта1,
    (ВЫБРАТЬ
        Валюты.Наименование КАК Наименование
    ИЗ
        Справочник.Валюты КАК Валюты
    ГДЕ
        Валюты.Ссылка = &Ссылка2) КАК Валюта2


Когда задаю обе валюты к примеру EUR и RUB все хорошо выводит..
EUR+RUB

н когда оин из параметров даю пустой...
то и на выходе пусто...

как победить чтоб выдавал 1 валюту ...?
1 ДенисЧ
 
24.09.15
14:25
ЕСТЬNULL()
2 Dmitriy_76
 
24.09.15
14:30
(1) это самое первое что я пробовал...
Валюта1.Наименование +"+"+ естьnull(Валюта2.Наименование,"")   КАК Поле1,


не робит
3 magicSan
 
24.09.15
14:31
отбор на верхний запрос а это всё во вложенный
4 Timon1405
 
24.09.15
14:32
ВЫБРАТЬ
    ЕСТЬNULL(Валюта1.Наименование, "") + "+" + ЕСТЬNULL(Валюта2.Наименование, "") КАК Поле1
ИЗ
    (ВЫБРАТЬ
        Валюты.Наименование КАК Наименование
    ИЗ
        Справочник.Валюты КАК Валюты
    ГДЕ
        Валюты.Ссылка = &Ссылка1) КАК Валюта1
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            Валюты.Наименование КАК Наименование
        ИЗ
            Справочник.Валюты КАК Валюты
        ГДЕ
            Валюты.Ссылка = &Ссылка2) КАК Валюта2
        ПО (ИСТИНА)

есть косяки когда нет первой валюты, но думаю их можно обойти выбор когда тогда
5 Dmitriy_76
 
24.09.15
14:32
(3) шо?
6 magicSan
 
24.09.15
14:33
не ну всё верно у одной таблицы нет значений - какое нафиг полное соединение?? не с чем соединять
7 Dmitriy_76
 
24.09.15
14:35
(4) робит...
8 rs_trade
 
24.09.15
14:38
Странный запрос. Зачем кросс джойн из двух вложенных запросов? Чем UNION не устраивает?
9 magicSan
 
24.09.15
14:40
(8) нененен давайте без юнион так слишком тривиально
10 rs_trade
 
24.09.15
14:42
(9) да там мож и не юнион. но все равно.
11 Dmitriy_76
 
24.09.15
14:44
тогды так :

ВЫБРАТЬ
    ВлжЗ.Наименование1 +"+"+ ВлжЗ.Наименование2   КАК Поле1
ИЗ
    (ВЫБРАТЬ
        Валюты.Наименование КАК Наименование1,
        "" КАК Наименование2
    ИЗ
        Справочник.Валюты КАК Валюты
    ГДЕ
        Валюты.Ссылка = &Ссылка1
    объединить все
        
    ВЫБРАТЬ
    "",
        Валюты.Наименование
    ИЗ
        Справочник.Валюты КАК Валюты
    ГДЕ
12 magicSan
 
24.09.15
14:55
ещё раз для ушлых - без ЮНИОН
13 rs_trade
 
24.09.15
15:03
(12) не кричи на нас
14 magicSan
 
24.09.15
15:14
я уже час голову ломаю - денег должен =)
15 rs_trade
 
24.09.15
15:19
(14) держи

ВЫБРАТЬ
    ЕСТЬNULL(Валюты1.Наименование, """") + ЕСТЬNULL(Валюты2.Наименование, """") КАК Поле1
ИЗ
    Справочник.Валюты КАК Валюты1
        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Валюты КАК Валюты2
        ПО Валюты1.Ссылка = &Ссылка1 И Валюты2.Ссылка = &Ссылка2
ГДЕ
    Валюты1.Ссылка = &Ссылка1
    ИЛИ Валюты2.Ссылка = &Ссылка2
16 magicSan
 
24.09.15
15:23
(15) чтоб тебя.


я не понял если у тя полное соединение то у него что за херь?
17 magicSan
 
24.09.15
15:24
ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка,
    ВложенныйЗапрос.Ссылка1 ИЗ
    (ВЫБРАТЬ
        ВложенныйЗапрос.Ссылка КАК Ссылка,
        ВложенныйЗапрос.Ссылка1 КАК Ссылка1,
        ВЫБОР
            КОГДА &парам <> ЗНАЧЕНИЕ(справочник.валюты.пустаяссылка)
                    И ВложенныйЗапрос.Ссылка = &парам
                ТОГДА 1
            ИНАЧЕ 0
        КОНЕЦ КАК Поле1,
        ВЫБОР
            КОГДА &парам1 <> ЗНАЧЕНИЕ(справочник.валюты.пустаяссылка)
                    И ВложенныйЗапрос.Ссылка1 = &парам1
                ТОГДА 1
            ИНАЧЕ 0
        КОНЕЦ КАК Поле2
    ИЗ
        (ВЫБРАТЬ
            Валюты.Ссылка КАК Ссылка,
            Валюты1.Ссылка КАК Ссылка1
        ИЗ
            Справочник.Валюты КАК Валюты,
            Справочник.Валюты КАК Валюты1) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос
ГДЕ
    ВложенныйЗапрос.Поле1 + ВложенныйЗапрос.Поле2 >= 1
18 magicSan
 
24.09.15
15:24
у меня хоть все строки по первой валюте возвращает
19 magicSan
 
24.09.15
15:25
у него внутрение чтоли ...
20 magicSan
 
24.09.15
15:27
ткаой развод над уставшим программистом - обидно. (6)я же понимал что дурь пишу ...
21 rs_trade
 
24.09.15
15:29
(16) ВНУТРЕННЕ СОЕДИНЕНИЕ ПО 1=1
22 Timon1405
 
24.09.15
15:37
так (4) не работает штолле?
23 rs_trade
 
24.09.15
15:42
(22) работает. больше разных вариантов надо ))
24 magicSan
 
24.09.15
17:09
условие задачи искорячили ламеры. тогда уж из одной таблицы проваславно доставать будет
25 Ненавижу 1С
 
гуру
24.09.15
17:14
ЕСТЬNULL и полное соединение
26 magicSan
 
24.09.15
17:15
(25) условие читай там внутрение