powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с запросом
5 сообщений из 5, страница 1 из 1
помогите с запросом
    #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
помогите с запросом
    #40096742
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"В определенном поле" - это как?
...
Рейтинг: 0 / 0
помогите с запросом
    #40096744
Centraloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uaggster,

В примере это поле field1 таблицы1 и поле cust таблицы2
...
Рейтинг: 0 / 0
помогите с запросом
    #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
помогите с запросом
    #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
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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