Дайте мне знать, как написать select query в case statement.как написать инструкцию select в случае оператора
select
ROW_NUMBER() OVER(Order by vendor.VendorName) AS ID,
PH.PurchasingHeaderID as BILLNo,
PH.TotalPriceCompanyCurrency as Balance,
acc.AccountName as [Account_Name]
**Into #tempOpenVedorlist**
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.PurchasingHeaderI
LEFT OUTER JOIN Account Acc on Acc.AccountID= PD.FinancialAccountID
where PH.TransactionTypeID=7
Group by vendor.VendorName,
PH.PurchasingHeaderID,PH.TotalPriceCompanyCurrency,acc.AccountName
Я получил этот результат:
с этим результатом: Здесь У меня нет: VB1003 два раза, но имя учетной записи отличается.
ID BILLNo Account_Name Balance
-------------------------------------------------------------
101 VB1000 Cash-Petty Cash 4000.00
102 VB1001 Accounts Receivable 5000.00
103 VB1003 Cash-PettyCash 6000.00
104 VB1003 Cash 6000.00
105 VB1004 UndepositedFunds 7000.00
Здесь я должен показать;
мне нужен этот результат:
ID BILLNo Account_Name Balance
------------------------------------------------------
101 VB1000 Cash-PettyCash 4000.00
102 VB1001 AccountsReceivable 5000.00
103 VB1003 ---Multiple---- 6000.00
104 VB1004 UndepositedFunds 7000.00
Для aboue результата, что я сделал: я взял все данные в таблице Темп.
Am смог показать несколько строк, для которых имеет более одного No.
Но несчастливо я не смог показать имя учетной записи, для которых есть только один BILLNo.
select ROW_NUMBER() OVER(Order by BILLNo) AS ID,
[BILLNo],
Balance,
CASE
WHEN count(BILLNo)>1 THEN 'Multipul'
WHEN count(BILLNo)<2 THEN **(Select Account_Name from #tempOpenVedorlist)**
End As [Financial_Account]
from #tempOpenVedorlist
Group By BILLNo,Balance
Позвольте мне знать, как я могу получить имя учетной записи из таблицы темп, который связан с этой BILLNo.
Если я удалить имя учетной записи из группы по, я получаю ошибки типа: Колонка «Account.AccountName» недопустим в списке выбора, поскольку он не содержится ни в статистической функции или предложения GROUP BY. – Kavitha
Думаю, вам понадобится 'MIN()' в 'THEN', так как в этой точке все еще есть несколько строк. –
Проверьте, пожалуйста. Я вложил все в MAX, поэтому он должен работать. –