2010-11-01 140 views
0

我花了大約4個小時就這一點,但我不能找到答案,我要像集團從兩個查詢的結果

的結果拒絕

somefilename1.txt - 從別的拒絕(如果沒有文件,則沒有表達(無 - 無效) - 查詢1) somefilename2.txt - 上(如果沒有文件則沒有從別的表達(否 - 有效)-Query 2)

我不明白我做了什麼,我用聯合所有或案例表達。 PLZ幫助我。

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' 

感謝

+1

您已爲此網站選擇了錯誤的方言。 – zerkms 2010-11-01 00:45:31

+0

我很抱歉。我是新來的。 – mike 2010-11-01 00:46:13

+0

Neo,歡迎來到堆棧溢出 - 只是一個提示,「PLZ幫助我這個」真的不是一個好的標題 - 它會導致人們像已經發生的那樣降低你的問題。只要嘗試「從兩個查詢分組結果」或其他...你可以編輯它,所以沒問題。 – makdad 2010-11-01 00:46:55

回答

0

基礎上的意見,看看是否返回你在找什麼。

如果沒有表中的記錄結果是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 

IF返回此:

Result 
--------------------------------- 
somefilename1.txt - FacetsPvsFile 
somefilename2.txt - FacetsRjctFile 
+0

嗨vinnie真的很感謝您的迴應,但排在最前面的拒絕只是兩個查詢的結果。我不知道什麼是.txt文件或者是否有任何文件。 – mike 2010-11-01 14:06:10

+0

你能提供佈局和數據在table1嗎? – Vinnie 2010-11-01 14:15:47

+0

肯定vinnie,這裏是查詢和表都只是SSISlogs數據庫中的ProcessControl。(沒有足夠的空間,所以我把它放在回答部分)一次,再次感謝你的幫助 – mike 2010-11-01 14:23:22

0

所有的奮鬥終於我想通了這一點。我拿出了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; 

非常感謝所有Vinnie。感謝你的幫助男人。