Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с запросом / 5 сообщений из 5, страница 1 из 1
10.09.2021, 15:29
    #40096736
Centraloff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Добрый день!

Прошу помочь составить запрос, задача такая, есть две таблицы, нужно получить выборку из первой таблицы и еще одно из полей в выборке должно заполняться значением 'X' если значение определенного поля есть определенном поле второй таблицы, если такого значения нет то заполнять ' '

Например

таблица 1
id field1 field2 field3
1 A B C
2 C B A
3 F A B

таблица2
id cust
1 F

и нужно получить выборку
1,A,B,C,' '
2,C,B,A,' '
3,F,A,B,'X'
...
Рейтинг: 0 / 0
10.09.2021, 15:45
    #40096742
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
"В определенном поле" - это как?
...
Рейтинг: 0 / 0
10.09.2021, 15:46
    #40096744
Centraloff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
uaggster,

В примере это поле field1 таблицы1 и поле cust таблицы2
...
Рейтинг: 0 / 0
10.09.2021, 15:47
    #40096747
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Centraloff,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
DECLARE @t1 TABLE(id     INT, 
                  field1 VARCHAR(20), 
                  field2 VARCHAR(20), 
                  field3 VARCHAR(20));
DECLARE @t2 TABLE(id   INT, 
                  cust VARCHAR(20));
INSERT INTO @t1 VALUES (1, 'A', 'B', 'C'), (2, 'D', 'B', 'A'), (3, 'F', 'A', 'B');
INSERT INTO @t2 VALUES (1, 'F'), (2, 'D'), (3, 'D'), (4, 'D'), (5, 'D');

SELECT a.*, 
       ISNULL(b.x, ' ') AS x
  FROM @t1 AS a
       OUTER APPLY
       (
        SELECT TOP 1 'X' AS x
          FROM @t2 AS b
         WHERE b.cust IN (a.field1, a.field2, a.field3)
       ) AS b;


id          field1               field2               field3               x
----------- -------------------- -------------------- -------------------- ----
1           A                    B                    C                     
2           D                    B                    A                    X
3           F                    A                    B                    X
...
Рейтинг: 0 / 0
10.09.2021, 16:05
    #40096753
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Centraloff
Добрый день!

Прошу помочь составить запрос, задача такая, есть две таблицы, нужно получить выборку из первой таблицы и еще одно из полей в выборке должно заполняться значением 'X' если значение определенного поля есть определенном поле второй таблицы, если такого значения нет то заполнять ' '

Например

таблица 1
id field1 field2 field3
1 A B C
2 C B A
3 F A B

таблица2
id cust
1 F

и нужно получить выборку
1,A,B,C,' '
2,C,B,A,' '
3,F,A,B,'X'
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
IF OBJECT_ID('tempDB..#T','U') IS NOT NULL DROP TABLE #T
IF OBJECT_ID('tempDB..#T2','U') IS NOT NULL DROP TABLE #T2

CREATE table #t (
id int
,field1 varchar (10)
,field2 varchar (10)
,field3 varchar (10)
)
INSERT INTO #T
SELECT  1, 'A', 'B', 'C'
INSERt INTO #T
SELECT  2, 'C', 'B' ,'A'
INSERt INTO #T
SELECT 3, 'F' ,'A', 'B'

CREATE table #t2 (
id int
,cust varchar (10)
)
INSERT INTO #t2
SELECT 1,  'F'

SELECT t.*, 
CASE WHEN isnull(t2.cust,'') = '' THEN   isnull (t2.cust,''' ''')
                                  ELSE 'X'
END as cust
FROM #t as t
LEFT JOIN #t2 as t2 ON t.field1 = t2.cust
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с запросом / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]