我有一個正在我的應用程序中使用的查詢。我不得不做一個小的編輯(選擇一個額外的列),現在我這樣做,我得不到相同的結果,因此我得到一個不好的文件。爲了給例如,這是查詢的樣子....是否可以從數據庫中選擇列而不將其顯示在結果集中 - 如果選中,則會導致分組出現問題
Select
'X' = tblA.VendorNumber,
'Y' = tblB.Label,
'Z' = tblC.InvoiceNo,
'W' = tblD.Checks,
From //Doing some joins here
Group By
tblA.VendorNumber, tblB.label, tblc.InvoiceNo, tblD.Checks
結果集給了我很多的記錄,但以相同的X的那些羣體,Y,Z,W - 所以有沒有GROUP BY它看起來像這樣
X Y Z W
-----------------------------------------------------------
123 Anton 772 0
123 Anton 772 0
顯然,與組由它們被彙總到一個...
問題是當我嘗試包括在我的Select
查詢的附加列。我需要這個查詢,因爲我需要重視我的代碼,以便能夠區分它是什麼類型的記錄。在新列中,這兩行數據並不相同,因此它們不會彙總。
有沒有辦法讓我以某種方式添加額外的列,但不顯示它,並從Group By
中排除它?
這就是我的意思
Select
'X' = tblA.VendorNumber,
'Y' = tblB.Label,
'Z' = tblC.InvoiceNo,
'W' = tblD.Checks,
'P' = tblC.Proc -- New column
From //Doing some joins here
Group By
tblA.VendorNumber, tblB.label, tblc.InvoiceNo, tblD.Checks,
tblC.Proc -- New column
在這種情況下,數據看起來像這樣
X Y Z W P
---------------------------------------------------------------------
123 Anton 772 0 FPN
123 Anton 772 0 PPN
所以,現在,P是對2條記錄,以前都彙總到一個不同的,是有一種方法讓我以某種方式不顯示P,但是,仍然能夠從我的記錄集中獲得它的價值。如果在這個查詢中沒有選擇'P',並且由於這兩個記錄沒有捲起來,我無法選擇'P',我遇到了一些重大問題。
基本上我需要選擇'P'但不包括它在我的結果集或分組中。
任何幫助將不勝感激。
如果值是每一行的不同,你仍然希望他們捲起成一排,是怎樣的處理器應該決定將哪兩個不同的值包含在捲起的行中?不,你不能在一個結果集中做到這一點。您需要爲另一個未彙總的結果集執行單獨的查詢。或者,如果您只希望捲起「P」個記錄,只需添加一個Where子句,它只會彙總「P」行。 –
爲什麼GROUP BY在不使用聚合函數時?你是否想要做一個SELECT DISTINCT? – jarlh
什麼是「我需要選擇'P'但不包括它在我的結果集中」甚至意味着什麼?你認爲選擇某些東西並將其包含在結果集中有什麼區別?從樣本數據中添加您想要的結果可能會有所幫助。如果你想「從你的記錄集中獲得它的價值」,你希望這是什麼價值? –