Как отключить один столбец в хранимой процедуре

Я написал одну хранимую процедуру.

Мое требование: я должен показать данные, как если бы ни один столбец не имел разных имен учетной записи, которые я должен показать, например, имя_компьютера: Multipul (varchar))

Create PROCEDURE [dbo].[OpenVendorBIllsSP] (@FromDate Date,@ToDate Date) 
AS 
BEGIN 
select
ROW_NUMBER() OVER(Order by vendor.VendorName ) AS ID,
PH.PurchasingHeaderID as No,
PH.TotalPriceCompanyCurrency as Balance,
acc.AccountName as [Account_Name],
PD.LineMemo as Memo,
from PurchasingHeader PH
LEFT OUTER JOIN TransactionType Trans ON PH.TransactionTypeID =Trans.TransactionTypeID
LEFT OUTER JOIN Vendor vendor on PH.VendorID=vendor.VendorID
LEFT OUTER JOIN PaymentTerm PT on PT.PaymentTermID = vendor.PaymentTermID
LEFT OUTER JOIN PurchasingDetail PD on PD.PurchasingHeaderID = PH.PurchasingHeaderID
LEFT OUTER JOIN Account Acc on Acc.AccountID= PD.FinancialAccountID 
where PH.TransactionTypeID=7
Group by vendor.VendorName,
PH.PurchasingHeaderID,PH.TotalPriceCompanyCurrency,acc.AccountName
END
GO

с этим результатом:

ID No Account_Name Balance Memo**
-------------------------------------------------------------
 101 VB1000 Cash-Petty Cash 4000.00 Memo
 102 VB1001 Accounts Receivable 5000.00 Memo
 103 VB1003 Cash-PettyCash 6000.00 Memo
 104 VB1003 Cash-PettyCash 6000.00 Memo
 105 VB1004 UndepositedFunds 7000.00 Memo

Мне нужен этот результат:

ID No Account_Name Balance Memo
------------------------------------------------------
 101 VB1000 Cash-PettyCash 4000.00 Memo1
 102 VB1001 AccountsReceivable 5000.00 Memo2
 103 VB1003 ---Multiple---- 6000.00 Memo3
 104 VB1004 UndepositedFunds 7000.00 Memo4

Может ли кто-нибудь сказать мне, как я могу написать sp, чтобы получить результат aboue.

Отредактированный SP:

Выбрать

ROW_NUMBER() OVER (заказ по поставщику.VendorName) AS ZID,

PH.PurchasingHeaderID как Нет,

PH.TotalPriceCompanyCurrency как Баланс,

Случай Когда count (PH.PurchasingHeaderID)> 1 Затем "Multipul" else acc.AccountName END

от ПокупателяHeader PH

LEFT OUTER JOIN TransactionType Trans ON PH.TransactionTypeID = Trans.TransactionTypeID

LEFT OUTER JOIN Поставщик поставщика на PH.VendorID = vendor.VendorID

LEFT OUTER JOIN PaymentTerm PT на PT.PaymentTermID = vendor.PaymentTermID

LEFT OUTER JOIN PurchasingDetail PD на PD.PurchasingHeaderID = PH.PurchasingHeaderID

LEFT OUTER JOIN Аккаунт Acc на Acc.AccountID = PD.FinancialAccountID

где PH.TransactionTypeID = 7

Group by vendor.VendorName, PH.PurchasingHeaderID,

PH.PurchasingHeaderID, PH.TotalPriceCompanyCurrency, acc.AccountName

1 ответ

Вы можете сделать подраздел, у которого есть все, затем GROUP BY acc.AccountName, PH.TotalPriceCompanyCurrency и т.д. И сделать CASE WHERE COUNT(acc.AccountName) > 1

licensed under cc by-sa 3.0 with attribution.