Я пытаюсь объединить два результата строки в одну строку. Вот мои результаты:Формат двух строк в одну строку
| OwnerTaxRate | OwnerTaxAmount | OwnerTaxTotal | LoanTaxRate | LoanTaxAmount | LoanTaxTotal
| 8.4% | 71.40 | 921.4 | NULL | NULL | NULL
| NULL | NULL | NULL | 8.4% | 10.08 | 130.08
Вот как мне нужны результаты для возврата.
| OwnerTaxRate | OwnerTaxAmount | OwnerTaxTotal | LoanTaxRate | LoanTaxAmount | LoanTaxTotal
| 8.4% | 71.40 | 921.4 | 8.4% | 10.08 | 130.08
Причина, он создает два ряда, потому что есть две записи для каждого заказа на основании LoanHolder
(это 0 или 1). Я подумал добавить заявление CASE
, чтобы выбрать, какой LoanHolder я хочу потянуть, будет работать, но, очевидно, нет. Вот мой отчет SELECT
:
SELECT
CASE
WHEN
ORC.LoanHolder = 1
THEN CONVERT(VARCHAR(MAX),ORC.Owner_TaxRateBasic) + '%'
ELSE NULL END AS 'OwnerTaxRate'
,CASE
WHEN
ORC.LoanHolder = 1
AND ORC.Owner_TaxAmountBasic > 0
AND ORC.Owner_TaxAmountSimultaneous = 0
AND ORC.Owner_TaxAmountAssociated = 0
THEN ORC.Owner_TaxAmountBasic
WHEN
ORC.LoanHolder = 1
AND ORC.Owner_TaxAmountBasic = 0
AND ORC.Owner_TaxAmountSimultaneous > 0
AND ORC.Owner_TaxAmountAssociated = 0
THEN ORC.Owner_TaxAmountSimultaneous
WHEN
ORC.LoanHolder = 1
AND ORC.Owner_TaxAmountBasic = 0
AND ORC.Owner_TaxAmountSimultaneous = 0
AND ORC.Owner_TaxAmountAssociated > 0
THEN ORC.Owner_TaxAmountAssociated
ELSE NULL END AS 'OwnerTaxAmount'
,CASE
WHEN
ORC.LoanHolder = 1
AND ORC.Owner_TaxTotalBasic > 0
AND ORC.Owner_TaxTotalSimultaneous = 0
AND ORC.Owner_TaxTotalAssociated = 0
THEN ORC.Owner_TaxTotalBasic
WHEN
ORC.LoanHolder = 1
AND ORC.Owner_TaxTotalBasic = 0
AND ORC.Owner_TaxTotalSimultaneous > 0
AND ORC.Owner_TaxTotalAssociated = 0
THEN ORC.Owner_TaxTotalSimultaneous
WHEN
ORC.LoanHolder = 1
AND ORC.Owner_TaxTotalBasic = 0
AND ORC.Owner_TaxTotalSimultaneous = 0
AND ORC.Owner_TaxTotalAssociated > 0
THEN ORC.Owner_TaxTotalAssociated
ELSE NULL END AS 'OwnerTaxTotal'
,CASE
WHEN
ORC.LoanHolder = 0
THEN CONVERT(VARCHAR(MAX),ORC.Loan_TaxRateBasic) + '%'
ELSE NULL END AS 'LoanTaxRate'
,CASE
WHEN
ORC.LoanHolder = 0
AND ORC.Loan_TaxAmountBasic > 0
AND ORC.Loan_TaxAmountSimultaneous = 0
AND ORC.Loan_TaxAmountAssociated = 0
THEN ORC.Loan_TaxAmountBasic
WHEN
ORC.LoanHolder = 0
AND ORC.Loan_TaxAmountBasic = 0
AND ORC.Loan_TaxAmountSimultaneous > 0
AND ORC.Loan_TaxAmountAssociated = 0
THEN ORC.Loan_TaxAmountSimultaneous
WHEN
ORC.LoanHolder = 0
AND ORC.Loan_TaxAmountBasic = 0
AND ORC.Loan_TaxAmountSimultaneous = 0
AND ORC.Loan_TaxAmountAssociated > 0
THEN ORC.Loan_TaxAmountAssociated
ELSE NULL END AS 'LoanTaxAmount'
,CASE
WHEN
ORC.LoanHolder = 0
AND ORC.Loan_TaxTotalBasic > 0
AND ORC.Loan_TaxTotalSimultaneous = 0
AND ORC.Loan_TaxTotalAssociated = 0
THEN ORC.Loan_TaxTotalBasic
WHEN
ORC.LoanHolder = 0
AND ORC.Loan_TaxTotalBasic = 0
AND ORC.Loan_TaxTotalSimultaneous > 0
AND ORC.Loan_TaxTotalAssociated = 0
THEN ORC.Loan_TaxTotalSimultaneous
WHEN
ORC.LoanHolder = 0
AND ORC.Loan_TaxTotalBasic = 0
AND ORC.Loan_TaxTotalSimultaneous = 0
AND ORC.Loan_TaxTotalAssociated > 0
THEN ORC.Loan_TaxTotalAssociated
ELSE NULL END AS 'LoanTaxTotal'
FROM
OrderRateCalculation ORC
WHERE
ORC.OrdersID = @OrdersID
Вы показываете две строки, но только один запрос. Если вы используете два запроса, вы можете использовать UNION, но я не знаю, так ли это. – ericpap