Имя: Пароль:
1C
1С v8
Язык запросов
0 MAPATNK2
 
naïve
16.02.17
07:34
Добрый день. немного нестандартная задача. Есть две колонки "Смена", "товар". Выглядят примерно так
Смена   Товар
1        товар1
1        товар2
2        товар1
2        товар3
То есть она отображает какой товар продала смена. Как в запросе реализовать следующее. нужно, чтобы в колонке "товар" у обоих смен было "=" если смена 1 и смена 2 продали одинаковые товары. Или "<>" если смены продали разные товары, как в примере. Повторяю необходимо реализовать это в запросе! который день уже долблюсь... ПРОШУ ПОМОГИТЕ, СПАСИТЕ, СКОРО СОЙДУ СУМА ОТ ТУПОСТИ СВОЕЙ!
1 zak555
 
16.02.17
07:36
может надо сделать группировку так ?

Товар
   Смена
2 MAPATNK2
 
naïve
16.02.17
07:38
(1) Ахах Ну да, сделал. Ну получаю я число "3" в первой смене и "3" во второй смене. Круто, что дальше?  Как мне проверить на то разные товары были проданы или нет? Как мне вместо этих чисел проставить равно и не равно?!
3 MAPATNK2
 
naïve
16.02.17
07:40
Как раз таки последние два вопроса и важны... Я и так понимаю, что необходима группировка. но как сделать так, чтобы он после группировки запускал условие? Да и вообще простое условие не поможет, ведь нужно просмотреть какие товары проданы первой сменой, а какие второй, а не просто по числу их распределить "равно" "не равно"
4 MAPATNK2
 
naïve
16.02.17
07:42
пускай хоть 1 смена продаст 50 раз товар1 а вторая смена 1 раз продас товар1, все равно должен стоять знак "=". А вот если первая смена продала товар1, а вторая только товар3, тогда "<>".
5 jsmith82
 
16.02.17
07:44
Так что ли
1        =
1        <>
2        =
2        <>
6 jsmith82
 
16.02.17
07:44
Чето не вижу смысла в таком отчете - ничего не понятно
7 MAPATNK2
 
naïve
16.02.17
07:47
(5) Объясню еще раз на примерах.

Смена   товар
1       товар1
1       товар2
2       товар3

   тогда должна получиться такая вот таблица!
Смена   товар
1       <>
2       <>
8 MAPATNK2
 
naïve
16.02.17
07:48
(5) Или
Смена   товар
1       товар1
1       товар2
2       товар1
2       товар2

   тогда должна получиться такая вот таблица!
Смена   товар
1        =
2        =
9 MAPATNK2
 
naïve
16.02.17
07:49
(6) Ну ЗАДАНИЕ У МЕНЯ такое, ну что поделать. голову ломаю уже который день. Смысл спрашивать зачем. один бог знает зачем преподу такая хренота нужна.

PS/ Не прошу за меня написать. Прошу помочь допереть до решения данной проблемы, подсказать как можно реализовать.
10 MAPATNK2
 
naïve
16.02.17
07:51
РЕБЯТААА. НУ ПОЖАЛУЙСТА. НЕ бросайте в беде. Помогите недоучке стать чуточку умнее.
11 jsmith82
 
16.02.17
07:51
(9) А среднее состояние? Когда множества пересекаются частично?
12 jsmith82
 
16.02.17
07:52
Часть товара совпала, часть - нет. Тогда чо, знак диеза?
13 osa1C
 
16.02.17
07:52
(0) Ничего не понял в задаче. Что и зачем.
А если сделать так:
Смена1 | Смена2 |
-----------------
Товар1 |   =    |
-----------------
Товар2 |   <>   |
14 jsmith82
 
16.02.17
07:53
(13) Да, просится состояние по двум колонкам Смена и Товар.. а у него только Смена..
15 MAPATNK2
 
naïve
16.02.17
07:53
(11) добить ">" или "<" . Тоесть снова на примере

Смена   товар
1       товар1
1       товар2
2       товар1
2       товар2
2       товар3

тогда получиться таблица:
1        <
2        >
Но это уже другая задача. Вы мне лучше с тем, что попроще помогите
16 osa1C
 
16.02.17
07:53
(10) А что если Товар3 не продала не первая не вторая смена? Какой знак ставить?
17 MAPATNK2
 
naïve
16.02.17
07:55
(16)

Смена   товар

1       товар1
1       товар2
2       товар1
2       товар2

   тогда должна получиться такая вот таблица!
Смена   товар
1        =
2        =

Хрен с этим товаром 3
18 osa1C
 
16.02.17
07:56
(14) ты постановку задачи понял? Зачем ему такой отче? ... Только ради двух колонок. Я например не понял, поэтому предлагаю первое что пришло на ум. ТС вроде надо видет те товары которые продались в обоих сменах (=) или продались только в одной (<>)
19 jsmith82
 
16.02.17
07:56
(15) Я в шоке!
20 osa1C
 
16.02.17
07:58
(19) +100500
21 MAPATNK2
 
naïve
16.02.17
07:59
(18) Я ведь объяснил. Такое задание. Ну реально сложное. Давайте еще раз. Если обе смены продали одинаковые товары за определенное время, то ставим знак "равно". Если обе смены продали за одно и то же время разные товары, тогда знак "не равно". Ну все же понятно?
22 MAPATNK2
 
naïve
16.02.17
08:00
Хрен с остальными случаями, я уже сам все добью. Вы мне это помогите решить (21) . Я ВАС УМОЛЯЮЮЮ
23 osa1C
 
16.02.17
08:09
(22) Нарисуй в эксель как ты видишь таблицу и покажи. А то вот это не понимаю:

Смена   товар
1        =
2        =

Это предполагает вот что:

Смена   товар1   товар2   товар3 ...... товарN
1        =         =        <>
2        =         <>       <>

Тебе это надо?
24 Одинесю
 
16.02.17
08:13
(23) Даны две смены с товарами. Если товары в смене совпадают, то =, если не совпадают, то <>
Смена     Товар1      Товар2
1            =           <>
2            =           <>
Смена 1 Товар 1 = Смена 2 Товар 1
Смена 1 Товар 2 <> Смена 2 Товар 2
Я так понял
25 MAPATNK2
 
naïve
16.02.17
08:14
(23) С удовольствием бы нарисовал, но скинуть не могу. Я ведь понятно и так обьяснил. ну блин. Что конкретно то не понятно? Есть две смены(1), Каждая работает в разные дни(2), Первая смена продала за один день (товар1 и товар3) Вторая смена за один день продала (Товар 1 и Товар2) тогда должна получиться табличка с двумя колонками и строчками

Смена   товар
1       <>
2       <>
26 MAPATNK2
 
naïve
16.02.17
08:16
(25) Если бы обе смены продали за один день только товар 1 и товар2, тогда таблица выглядела так

Смена   товар
1        =
2        =
27 Naf2017
 
16.02.17
08:16
Если множесто1 свопадает со множеством2 то =
Если множесто1 включено в множеством2 то <
Если множесто1 включает множество2 то >
Иначе <>

Так что ли?

Но учти, что пустое множество включено в любое непустое
28 MAPATNK2
 
naïve
16.02.17
08:17
(27) ДАДАДАДАДАДАД КАК ТО ТАК
29 jsmith82
 
16.02.17
08:17

ВЫБРАТЬ
ВтТовары.Смена,
ВтТовары.Товар
ПОМЕСТИТЬ ВтТовары1
ИЗ
ВтТовары КАК ВтТовары
ГДЕ Товары.Смена = 1
;
ВЫБРАТЬ
ВтТовары.Смена,
ВтТовары.Товар
ПОМЕСТИТЬ ВтТовары2
ИЗ
ВтТовары КАК ВтТовары
ГДЕ Товары.Смена = 2
;
ВЫБРАТЬ
ВЫБОР КОГДА СУММА(ВЫБОР КОГДА ВтТовары1.Товар ЕСТЬ NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) > 0 КОНЕЦ КАК Товар1Отсутствует,
ВЫБОР КОГДА СУММА(ВЫБОР КОГДА ВтТовары2.Товар ЕСТЬ NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) > 0 КОНЕЦ КАК Товар2Отсутствует
ПОМЕСТИТЬ ВтВсеТовары
ИЗ ВтТовары1
ПОЛНОЕ СОЕДИНЕНИЕ ВтТовары2 КАК ВтТовары2
ПО ВтТовары1.Товар = ВтТовары2.Товар
;
ВЫБРАТЬ
ВтТовары.Смена,
ВтТовары.Товар,
ВЫБОР КОГДА (0, 0) В (ВЫБРАТЬ ВтВсеТовары.Товар1Отсутствует, ВтВсеТовары.Товар2Отсутствует) ТОГДА ""="" ИНАЧЕ ""<>"" КОНЕЦ КАК Знак
ИЗ
ВтТовары КАК ВтТовары
30 osa1C
 
16.02.17
08:18
(24) ну я также в (23) нарисовал, также понял. А другой вариант предложил в (13)
31 jsmith82
 
16.02.17
08:29
ВЫБОР КОГДА (0, 0) В (ВЫБРАТЬ ВтВсеТовары.Товар1Отсутствует, ВтВсеТовары.Товар2Отсутствует) ТОГДА ""=""
КОГДА (0, 1) В (ВЫБРАТЬ ВтВсеТовары.Товар1Отсутствует, ВтВсеТовары.Товар2Отсутствует) ТОГДА "">""
КОГДА (1, 0) В (ВЫБРАТЬ ВтВсеТовары.Товар1Отсутствует, ВтВсеТовары.Товар2Отсутствует) ТОГДА ""<""
ИНАЧЕ ""<>"" КОНЕЦ КАК Знак
32 MAPATNK2
 
naïve
16.02.17
09:13
(29) ну и жесть. долго разбирался в этом.

ВЫБРАТЬ
ВтТовары.Смена,
ВтТовары.Товар,
ВЫБОР КОГДА (0, 0) В (ВЫБРАТЬ ВтВсеТовары.Товар1Отсутствует, ВтВсеТовары.Товар2Отсутствует) ТОГДА ""="" ИНАЧЕ ""<>"" КОНЕЦ КАК Знак
ИЗ
ВтТовары КАК ВтТовары




тут ошибку выдает. Пишет, что повторяющиеся псевдонимы. Чет я не понял
33 MAPATNK2
 
naïve
16.02.17
09:26
А ДРУГИХ ВАРИАНТОВ НЕТ?
34 Naf2017
 
16.02.17
09:27
ВЫБРАТЬ
    Смена1.Номенклатура
ПОМЕСТИТЬ Смена1
ИЗ
    &Смена1 КАК Смена1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Смена2.Номенклатура
ПОМЕСТИТЬ Смена2
ИЗ
    &Смена2 КАК Смена2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА КОЛИЧЕСТВО(Смена1.Номенклатура) > 0
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Флаг
ПОМЕСТИТЬ Смена1БезСмена2
ИЗ
    Смена1 КАК Смена1
        ЛЕВОЕ СОЕДИНЕНИЕ Смена2 КАК Смена2
        ПО Смена1.Номенклатура = Смена2.Номенклатура
ГДЕ
    Смена2.Номенклатура ЕСТЬ NULL
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА КОЛИЧЕСТВО(Смена2.Номенклатура) > 0
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Флаг
ПОМЕСТИТЬ Смена2БезСмена1
ИЗ
    Смена2 КАК Смена2
        ЛЕВОЕ СОЕДИНЕНИЕ Смена1 КАК Смена1
        ПО (Смена1.Номенклатура = Смена2.Номенклатура)
ГДЕ
    Смена1.Номенклатура ЕСТЬ NULL
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    "Смена 1" КАК Ключ,
    ВЫБОР
        КОГДА НЕ Смена1БезСмена2.Флаг
                И НЕ Смена2БезСмена1.Флаг
            ТОГДА "="
        КОГДА Смена1БезСмена2.Флаг
                И НЕ Смена2БезСмена1.Флаг
            ТОГДА ">"
        КОГДА НЕ Смена1БезСмена2.Флаг
                И Смена2БезСмена1.Флаг
            ТОГДА "<"
        ИНАЧЕ "<>"
    КОНЕЦ КАК Значение
ИЗ
    Смена1БезСмена2 КАК Смена1БезСмена2,
    Смена2БезСмена1 КАК Смена2БезСмена1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Смена 2",
    ВЫБОР
        КОГДА НЕ Смена1БезСмена2.Флаг
                И НЕ Смена2БезСмена1.Флаг
            ТОГДА "="
        КОГДА Смена1БезСмена2.Флаг
                И НЕ Смена2БезСмена1.Флаг
            ТОГДА "<"
        КОГДА НЕ Смена1БезСмена2.Флаг
                И Смена2БезСмена1.Флаг
            ТОГДА ">"
        ИНАЧЕ "<>"
    КОНЕЦ
ИЗ
    Смена1БезСмена2 КАК Смена1БезСмена2,
    Смена2БезСмена1 КАК Смена2БезСмена1
35 MAPATNK2
 
naïve
16.02.17
09:30
(34) И тут жестко....Пора пересмотреть свой выбор профессии.  А где товары? Что за Смена.Номенклатураа???
36 MAPATNK2
 
naïve
16.02.17
09:30
Прошу прощение за тупизм с моей стороны.
37 Naf2017
 
16.02.17
09:35
(35) товары это и есть номенклатура так-то

иди в строители, на укладке кафельной плитке больше заработаешь
38 dubraver
 
16.02.17
09:44
Решение на T-SQL:
declare @t1 table (Smena varchar(10), Tovar varchar(10))

insert into @t1
select 'смена1', 'товар1'
union all
select 'смена1', 'товар1'
union all
select 'смена1', 'товар2'
union all
select 'смена2', 'товар1'
union all
select 'смена2', 'товар2'    
union all
select 'смена2', 'товар3'


select Tovar,[смена1], [смена2], case when [смена1] = [смена2] then '=' else '<>' end as Status from @t1
pivot (
  count(Smena) for Smena in ([смена1], [смена2])
  
) as pvt

Результат:
Tovar    смена1    смена2    Status
-------------------------------
товар1    2    1    <>
товар2    1    1    =
товар3    0    1    <>
39 patria0muerte
 
16.02.17
09:50
Как такой вариант:

ВЫБРАТЬ
    ВТДанные.Товар,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТДанные.Смена) КАК КоличествоПродаж
ПОМЕСТИТЬ ВТКоличествоПродаж
ИЗ
    ВТДанные КАК ВТДанные

СГРУППИРОВАТЬ ПО
    ВТДанные.Товар
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТДанные.Смена) КАК КоличествоСмен
ПОМЕСТИТЬ ВТКоличествоСмен
ИЗ
    ВТДанные КАК ВТДанные
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТКоличествоПродаж.Товар,
    ВЫБОР
        КОГДА ВТКоличествоПродаж.КоличествоПродаж = ВТКоличествоСмен.КоличествоСмен
            ТОГДА "="
        ИНАЧЕ "<>"
    КОНЕЦ КАК Признак
ИЗ
    ВТКоличествоПродаж КАК ВТКоличествоПродаж
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКоличествоСмен КАК ВТКоличествоСмен
        ПО (ИСТИНА)
40 patria0muerte
 
16.02.17
09:59
Не, фигня, не то
41 MAPATNK2
 
naïve
16.02.17
10:04
(37) К чему это вообще. Где смены, где товары. Какой отбор. Спасибо за предложения пойти в строители, вынужден отказаться)) не думаю, что вы будучи начинающим программистом писали сложные запросы)) Вот и я только учусь, так что будьте снисходительнее))
42 MAPATNK2
 
naïve
16.02.17
10:05
(38) Не то
43 Naf2017
 
16.02.17
10:10
(41) вссе согласно одобренному ТЗ в (27)
44 VladZ
 
16.02.17
10:12
Примерно так:
1. Получаем весь перечень товаров.
2. Получаем товары для смены 1.
3. Получаем товары для смены 2.
4. Выбираем все товары из 1 + левое соединение 2 и левое соединение 3.
5. Считаем колво несовпадений через Есть null
6. Если колво несовпадений в первой смене больше нуля - ставим "<>".
7. Если колво несовпадений во второй смене больше нуля - ставим "<>".
8. Собираем вместе 6 и 7.
45 VladZ
 
16.02.17
10:12
+44 по п.п. 6 и 7: иначе - ставим "=".
46 VladZ
 
16.02.17
10:19
+45 Насколько я понимаю, практического применения не имеет. Служит чисто для проверки знаний.
47 dubraver
 
16.02.17
10:22
(42)
Корректировка с учетом, что смены продавали хоть одну и более единицу одинакового товара:

select Tovar,[смена1], [смена2], case when [смена1] > 0 and [смена2] > 0 then '=' else '<>' end as Status from @t1
pivot (
  count(Smena) for Smena in ([смена1], [смена2])
  
) as pvt

Tovar  смена1 смена2 Status
------------------------------
товар1    2    1    =
товар2    1    1    =
товар3    0    1    <>
48 MAPATNK2
 
naïve
16.02.17
10:31
Я Показал, что должно получиться Уважаемые программисты!

Смена   товар
1       <>
2       <>

  Либо


Смена   товар
1        =
2        =
49 MAPATNK2
 
naïve
16.02.17
10:32
и никак по другому. А варианты, которые вы предлагаете так совсем не выглядят .
50 shuhard
 
16.02.17
10:32
(48) мы рады за тебя, малоуважаемый ТС
51 MAPATNK2
 
naïve
16.02.17
10:33
Хотя и помогли хорошо, я раньше не знал как создавать в запросе временные таблицы и пихать туда данные. Только не понял, как потом перебирать эти данные
52 VladZ
 
16.02.17
10:34
(48) А если смена 2 продала товар как смена 1 и еще кое-что? Тогда что в итоге должно получиться?
53 MAPATNK2
 
naïve
16.02.17
10:36
(52) должно получиться так


Смена    Товар
1        <
2        >

Но мне пойдет и так

Смена    Товар
1        <>
2        <>
Сам потом доделаю
54 1dvd
 
16.02.17
10:37
Это на собеседовании такие задачи дают?
55 MAPATNK2
 
naïve
16.02.17
10:39
(54) Ага, на каждом XD.
56 Naf2017
 
16.02.17
10:46
(48) я тебе готовое решение в (34) выложил

но видимо не судьба
57 1dvd
 
16.02.17
10:55
(56) у тебя нету удалений ВТ :)
58 MAPATNK2
 
naïve
16.02.17
10:56
(56) Я вам уже написал, что не понял, что за смена. Номенклатура и что оно в себя включает.
59 patria0muerte
 
16.02.17
10:57
Допустим вот так...

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(1) КАК КоличествоПродаж
ПОМЕСТИТЬ ВТКоличествоПродаж
ИЗ
    ВТДанные КАК ВТДанные
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТДанные.Смена,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТДанные.Товар) КАК КоличествоТовара
ПОМЕСТИТЬ ВТПродажиЗаСмену
ИЗ
    ВТДанные КАК ВТДанные

СГРУППИРОВАТЬ ПО
    ВТДанные.Смена
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(1) КАК КоличествоОдинаковыхПродаж
ПОМЕСТИТЬ ВТКоличествоОдинаковыхПродаж
ИЗ
    ВТДанные КАК ВТДанные
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДанные КАК ВТДанные1
        ПО ВТДанные.Смена <> ВТДанные1.Смена
            И ВТДанные.Товар = ВТДанные1.Товар
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТПродажиЗаСмену.Смена,
    ВТПродажиЗаСмену.КоличествоТовара,
    ЕСТЬNULL(ВТПродажиЗаСмену1.КоличествоТовара, 0) КАК Поле1,
    ВТКоличествоОдинаковыхПродаж.КоличествоОдинаковыхПродаж,
    ВТКоличествоПродаж.КоличествоПродаж,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВТПродажиЗаСмену1.КоличествоТовара, 0) = 0
            ТОГДА "?"
        КОГДА ЕСТЬNULL(ВТКоличествоОдинаковыхПродаж.КоличествоОдинаковыхПродаж, 0) = ВТКоличествоПродаж.КоличествоПродаж
            ТОГДА "="
        КОГДА ЕСТЬNULL(ВТКоличествоОдинаковыхПродаж.КоличествоОдинаковыхПродаж, 0) = 0
                И ВТПродажиЗаСмену.КоличествоТовара = ЕСТЬNULL(ВТПродажиЗаСмену1.КоличествоТовара, 0)
            ТОГДА "<>"
        КОГДА ВТПродажиЗаСмену.КоличествоТовара > ЕСТЬNULL(ВТПродажиЗаСмену1.КоличествоТовара, 0)
            ТОГДА ">"
        ИНАЧЕ "<"
    КОНЕЦ КАК Признак
ИЗ
    ВТПродажиЗаСмену КАК ВТПродажиЗаСмену
        ЛЕВОЕ СОЕДИНЕНИЕ ВТПродажиЗаСмену КАК ВТПродажиЗаСмену1
        ПО ВТПродажиЗаСмену.Смена <> ВТПродажиЗаСмену1.Смена
        ЛЕВОЕ СОЕДИНЕНИЕ ВТКоличествоОдинаковыхПродаж КАК ВТКоличествоОдинаковыхПродаж
        ПО (ИСТИНА)
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКоличествоПродаж КАК ВТКоличествоПродаж
        ПО (ИСТИНА)
60 dubraver
 
16.02.17
10:59
(58) Скажите, это задачу Вам на работе начальник поставил или вы решаете тестовое задание? Есть это задание, то скопируйте сюда сам текст от работодателя, может там указаны все логические ограничения. Если это начальник, то напишите практическое применение данной задачи.
61 patria0muerte
 
16.02.17
11:02
(59)
Вот это:
КОГДА ЕСТЬNULL(ВТКоличествоОдинаковыхПродаж.КоличествоОдинаковыхПродаж, 0) = 0 И ВТПродажиЗаСмену.КоличествоТовара = ЕСТЬNULL(ВТПродажиЗаСмену1.КоличествоТовара, 0)
Заменить на вот это:
КОГДА ЕСТЬNULL(ВТКоличествоОдинаковыхПродаж.КоличествоОдинаковыхПродаж, 0) = 0 ИЛИ ВТПродажиЗаСмену.КоличествоТовара = ЕСТЬNULL(ВТПродажиЗаСмену1.КоличествоТовара, 0)
62 MAPATNK2
 
naïve
16.02.17
11:11
(60) Это задача от преподавателя, он говорил, я записывал, все, что он сообщил я написал в первом сообщении.
63 MAPATNK2
 
naïve
16.02.17
11:12
Большую часть я сделал. Осталась последняя колонка, где идет сравнения проданных товаров. ЭТО КАК РАЗ ТО, ЧТО Я И НЕ МОГУ СДЕЛАТЬ, поэтому сюда написал, в надежде, что мне помогут.
64 Naf2017
 
16.02.17
11:14
(58) ну бывает, значит не твое
65 MAPATNK2
 
naïve
16.02.17
11:16
(59) Не могли бы вы объяснить
    СУММА(1) КАК КоличествоПродаж
что содержится в этом?
66 MAPATNK2
 
naïve
16.02.17
11:18
(64) Я не прошу вас разбираться в мой писанине. И вы меня уберегите от этого. У меня есть таблица с двумя колонками, их четкое название я написал. Я и так не гуру 1с, а еще разбираться с тем что и как вы назвали....
67 Одинесю
 
16.02.17
11:21
(66) "Я и так не гуру 1с, а еще разбираться с тем что и как вы назвали...." -так не пойдет.
68 Любопытная
 
16.02.17
11:21
(65) Это счетчик. Фактически считает количество строк в таблице
69 Любопытная
 
16.02.17
11:22
"Я не прошу вас разбираться в мой писанине. И вы меня уберегите от этого."   Это прекрасно!
70 MAPATNK2
 
naïve
16.02.17
11:26
(67) (69) Прошу прощения. Расстроился просто. Неужели никто не учился программировать, себя вспомните. Не всем дано с первого раза все понять.
71 Любопытная
 
16.02.17
11:26
(70) Все учились программировать.
Лично меня просто бесят вот такие отговорки, серьезно.
72 MAPATNK2
 
naïve
16.02.17
11:47
Ладно, всем спасибо. Сам как-нибудь
73 VladZ
 
16.02.17
11:47
(63) "Большую часть я сделал. Осталась последняя колонка, где идет сравнения проданных товаров". Сравнение - это и есть большая часть. По сути, ты еще ничего не сделал.
74 VladZ
 
16.02.17
11:50
Вариант, который я привел в (44) работает в режиме "=" и "<>". Если его чуть пильнуть, будет работать и в ">" или "<".
75 MAPATNK2
 
naïve
16.02.17
12:17
(74) Хорошо, спасибо, буду пробовать.
76 Ildarovich
 
16.02.17
15:39
Вот вариант решения:
Заполнение таблицы "Дано" тестовыми данными:
ВЫБРАТЬ "Смена1" КАК Смена, "Товар1" КАК Товар ПОМЕСТИТЬ Дано ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена1", "Товар2" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена2", "Товар1" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена2", "Товар3";

Собственно решение:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Дано.Смена,
    ВЗ.Знак
ИЗ
    Дано КАК Дано,
    (ВЫБРАТЬ
        МИНИМУМ(ВЫБОР
                КОГДА Дано1.Смена ЕСТЬ NULL
                        ИЛИ Дано2.Смена ЕСТЬ NULL
                    ТОГДА "<>"
                ИНАЧЕ "="
            КОНЕЦ) КАК Знак
    ИЗ
        Дано КАК Дано1
            ПОЛНОЕ СОЕДИНЕНИЕ Дано КАК Дано2
            ПО Дано1.Товар = Дано2.Товар
                И Дано1.Смена <> Дано2.Смена) КАК ВЗ
77 эс-образник
 
16.02.17
15:58
"Прошу помочь допереть до решения данной проблемы, подсказать как можно реализовать" - предлагаю использовать полное соединение таблиц по смене и товарам. Где находятся записи, там "=", где NULL = там очевидно не равно. Количество (как я понял) значения не имеет, имеет значение сам факт продажи такого-то типа товара такой-то сменой.
78 MAPATNK2
 
naïve
17.02.17
08:59
(76) Количество товара не ограничено
79 MAPATNK2
 
naïve
17.02.17
08:59
(77) Не получается необходимая таблица. 2x2
80 Ildarovich
 
17.02.17
09:38
(78) В решении (76) это учитывается. Число видов товаров, продаваемой каждой сменой, может быть любым.

Тестовые данные приведены тут для удобства, чтобы любой мог сразу сам попробовать запрос в консоли запросов.

Можете заполнить тестовую таблицу, например, так:
ВЫБРАТЬ "Смена1" КАК Смена, "Товар1" КАК Товар ПОМЕСТИТЬ Дано ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена1", "Товар2" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена2", "Товар5" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена2", "Товар10" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена1", "Товар5" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена1", "Товар10" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена1", "Товар1" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена2", "Товар1" ОБЪЕДИНИТЬ
ВЫБРАТЬ "Смена2", "Товар2";

- все равно запрос покажет равенство.

Можете даже число смен увеличить, но в этом случае равенство будет показано, если ВСЕ смены продали один и тот же набор товаров, а  если хотя бы одна смена продала другой набор, везде будет показано неравенство.

На месте преподавателя я бы изменил условия задачи на более более приближенные к практике, чтобы выходом являлась таблица вида (из трех колонок):
"Смена1" "<>" "Смена2" при неравенстве набора проданных товаров или
"Смена1" "=" "Смена2" при равенстве. Тогда же можно говорить о необходимости знаков ">""<""><", но это уже другая задача и другие запросы...
81 MAPATNK2
 
naïve
20.02.17
07:12
Как с помощью запроса вывести только четные или только нечетные данные?
82 Неверный Параметр И
 
20.02.17
07:19
83 osa1C
 
20.02.17
07:46
(82) LOL... так и надо. Обе ветки ТС. Классно ты его в Цикл послал ))))
84 MAPATNK2
 
naïve
20.02.17
08:21
Всем спасибо, к сожалению никто толком не помог по вопросу. Разобрался сам.)