Member 14636607 Ответов: 1

Нужен SQL запрос для объединения таблицы и получения желаемого результата


У меня есть две таблицы "Таблица 1" и "таблица 2". Я должен присоединиться к этим таблицам, чтобы получить желаемый результат.

таблица 1
COLUMN1 COLUMN2
    A   1
    A   2
    A   3
    A   4
    A   5
    A   6
    A   7
    A   8
    B   9
    B   10
    B   11
    B   12
    B   13
    B   14
    B   15
    B   16
    C   17
    C   18
    C   19
    C   20
    C   21
    C   22
    C   23
    C   24


таблица 2

COLUMN1 COLUMN2   COLUMN3 COLUMN4
    DAY1    A          1    TEST1
    DAY1    A          3    TEST3
    DAY1    A          6    TEST6
    DAY1    A          8    TEST8
    DAY1    B          9    TEST9
    DAY1    B         11    TEST11
    DAY1    B         14    TEST14
    DAY1    C         18    TEST18
    DAY1    C         19    TEST19
    DAY1    C         23    TEST23
    DAY2    A          2    TEST1
    DAY2    A          2    TEST3
    DAY2    A          7    TEST6
    DAY2    A          8    TEST8
    DAY2    B          11   TEST9
    DAY2    B          13   TEST11
    DAY2    B          16   TEST14
    DAY2    C          17   TEST18
    DAY2    C          21   TEST19
    DAY2    C          24   TEST23


Таблица 1-это моя главная таблица, поэтому она никогда не меняется. Таблица 2 продолжает меняться каждый день. Я должен объединить две таблицы, чтобы получить ожидаемый результат ниже

Expected Result


COLUMN1 COLUMN2 COLUMN3 COLUMN4
DAY1        A      1    TEST1
DAY1        A      2    TEST1
DAY1        A      3    TEST3
DAY1        A      4    TEST3
DAY1        A      5    TEST3
DAY1        A      6    TEST6
DAY1        A      7    TEST6
DAY1        A      8    TEST8
DAY1        B      9    TEST9
DAY1        B      10   TEST9
DAY1        B      11   TEST11
DAY1        B      12   TEST11
DAY1        B      13   TEST11
DAY1        B      14   TEST14
DAY1        B      15   TEST14
DAY1        B      16   TEST14
DAY1        C      17   TEST14
DAY1        C      18   TEST18
DAY1        C      19   TEST19
DAY1        C      20   TEST19
DAY1        C      21   TEST19
DAY1        C      22   TEST19
DAY1        C      23   TEST23
DAY1        C      24   TEST23
DAY2        A      1    TEST1
DAY2        A      2    TEST1
DAY2        A      3    TEST3
DAY2        A      4    TEST3
DAY2        A      5    TEST3
DAY2        A      6    TEST6
DAY2        A      7    TEST6
DAY2        A      8    TEST8
DAY2        B      9    TEST9
DAY2        B      10   TEST9
DAY2        B      11   TEST11
DAY2        B      12   TEST11
DAY2        B      13   TEST11
DAY2        B      14   TEST14
DAY2        B      15   TEST14
DAY2        B      16   TEST14
DAY2        C      17   TEST14
DAY2        C      18   TEST18
DAY2        C      19   TEST19
DAY2        C      20   TEST19
DAY2        C      21   TEST19
DAY2        C      22   TEST19
DAY2        C      23   TEST23
DAY2        C      24   TEST23



После объединения таблиц 1 и 2 некоторые строки столбца 4 в таблице ожидаемых результатов будут иметь нулевые значения. Где бы он ни был равен нулю, он должен принимать Предыдущее значение столбца строки 4. Надеюсь, мой вопрос будет ясен

Что я уже пробовал:

таблица 1-это главная таблица, а таблица 2 меняется каждый день. Поскольку я новичок в SQL sever, я просто попробовал table 1 left join table 2 и table 2 left join table 1, но это не дает мне ожидаемого результата

1 Ответов

Рейтинг:
0

MadMyche

Ваши данные не поддерживают это с помощью простого запроса соединения; самый быстрый маршрут, который я вижу, - это объединение двух соединений вместе и работа оттуда для тонкой настройки. Вот такой стартер для вас

SELECT b.Column1, b.Column2, b.Column3, b.Column4
FROM       Table1  a
INNER JOIN Table2  b ON a.Column1 = b.Column2 AND a.Column2 = b.Column3
   UNION
SELECT b.Column1, b.Column2, b.Column3, b.Column4
FROM       Table1  a
INNER JOIN Table2  b ON a.Column1 = b.Column2 AND a.Column2 = (b.Column3 -1)


Maciej Los

5ed!

Member 14636607

???

Member 14636607

@MadMyche .... Решение не работает, сэр.