Сгруппировать результаты из двух запросов - PullRequest
0 голосов
/ 01 ноября 2010

Я потратил около 4 часов на это, но я не смог найти ответ, я хочу результат, как

Rejects

somefilename1.txt - Отклонено (и если нет файла, то нет из выражения else (Нет - Неверно) - Запрос 1) somefilename2.txt - Предыдущий (и если нет файла, то выражение Нет из другого (Нет - Действительный) -Query 2)

Я не понимаю, что мне делать, использую ли я union all или case case. Пожалуйста, помогите мне с этим.

QUERY1:

if exists (select NULL from table1 where Column1 = 'File1')
    select distinct Column1 +'-'+ 'Rejected' as 'Rejects' from table1
    where Column1 = 'File1'
else 
    select 'No' as 'Invalid'

QUERY2:

if exists (select NULL from table1 where Column1 = 'File2')
    select distinct Column1 +'-'+ 'Previous' as 'Rejects' from table1
    where column1 = 'File2'
else 
    select 'No' as 'valid'

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 ноября 2010

После всей борьбы, наконец, я понял это.Я достал IF..ELSE.Я создал временную таблицу INSERT INTO .. SELECT DISTINCT в обоих запросах.Так что это как ...

TRUNCATE TABLE #TEMP;

INSERT INTO #TEMP SELECT DISTINCT...... (Query 1);

INSERT INTO #TEMP SELECT DISTINCT...... (Query 2);

SELECT * FROM #TEMP;

Спасибо всем, особенно Винни.Ценю вашу помощь Человек.

0 голосов
/ 01 ноября 2010

На основе комментариев, посмотрите, вернет ли это то, что вы ищете.

Если в таблице нет записей, результат будет No Input File

При наличии записей каждая строка оценивается с помощью оператора CASE.

--drop table table1

create table table1
(SubjectArea varchar(255)
, SrcFileName varchar(255))

insert into table1
select 'UaqaFacetsPvs','somefilename1.txt'
union select 'UaqaFacetsRjct','somefilename2.txt'
union select null,null
union select null,'somefilename2.txt'

IF EXISTS(SELECT NULL FROM table1 WHERE SubjectArea in ('UaqaFacetsRjct','UaqaFacetsPvs'))
    SELECT DISTINCT SrcFileName
     + ' - ' + 
     CASE SubjectArea 
        WHEN 'UaqaFacetsPvs' THEN 'FacetsPvsFile'
        WHEN 'UaqaFacetsRjct' THEN 'FacetsRjctFile'
        ELSE ''
      END AS Result
    FROM table1
    WHERE SubjectArea in ('UaqaFacetsRjct','UaqaFacetsPvs')
ELSE SELECT 'No input file' AS Result

This IF возвращает это:

Result
---------------------------------
somefilename1.txt - FacetsPvsFile
somefilename2.txt - FacetsRjctFile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...