2013-05-02 47 views
2

我被要求根據帳號在報告中添加幾列。強制查詢傳送基於WHERE值的重複結果

問題是多個帳戶在此報告中多次列出。

該報告有500多行,但只有450個帳號。

有沒有辦法強制我的結果給我重複的數據?

實施例:

SELECT 
a.AccountNumber, 
a.ProgramFlag, 
a.ApplicationStatus 

FROM 
accountInfo as A 

WHERE 
a.AccountNumber in ('100','101','101','101','102','102','103') 

ORDER BY 
a.AccountNumber asc 

結果:

AccountNumber | Program Flag | ApplicationStatus 
------------------------------------------------ 
100   |  1  |  INSTALLED 
101   |  0  |  CLOSED 
102   |  1  |  INSTALLED 
103   |  0  |  INSTALLED 

期望的結果:

AccountNumber | Program Flag | ApplicationStatus 
------------------------------------------------ 
100   |  1  |  INSTALLED 
101   |  0  |  CLOSED 
101   |  0  |  CLOSED 
101   |  0  |  CLOSED 
102   |  1  |  INSTALLED 
102   |  1  |  INSTALLED 
103   |  0  |  INSTALLED 

的期望的結果將是通過重複所有的信息更容易添加到自定義報告對於出現多次的帳戶。特別是有500多條記錄。

+0

我已經在過去加入了與報表查詢的簡單的查詢,這通常是最簡單的方法。但是,我收到一些來自外部組織的報告,這些報告恰好使用我們的帳戶號碼。在這種情況下,我無法訪問原始查詢或數據庫。 Mikael Eriksson的回答正是我所需要的。 – tcshain 2013-05-02 16:41:42

回答

7

您不能在where子句中添加行,但可以在派生表中使用您的數字並加入。

SELECT 
    a.AccountNumber, 
    a.ProgramFlag, 
    a.ApplicationStatus 
FROM 
    dbo.accountInfo as A 
INNER JOIN 
    (VALUES('100'),('101'),('101'),('101'),('102'),('102'),('103')) as T(AccountNumber) 
ON 
    A.AccountNumber = T.AccountNumber 
ORDER BY 
    a.AccountNumber asc; 

SQL Fiddle

+0

完美 - 正是我所期待的。謝謝一堆! – tcshain 2013-05-02 16:36:25