Моя проблема на самом деле у меня есть несколько таблиц, и я использую два оператора case
для генерации одного столбца для ARV1
и один для ICA1
, но мне нужно, чтобы результаты были сгенерированы в том же ряду. Когда я использую case
, сгенерируйте два столбца, но значения отображаются в две строки. Что мне не хватает?Более одного случая в одном запросе генерируют более одной строки
вещь есть, у меня есть счет-фактура таблицы OINV и есть таблица INV5, которая является таблицей с удерживающими налогами, мне нужно поставить в ту же строку счет-фактуру со всеми налогами на удержание в разных столбцах, которые применяются на нем, благодаря
это примерные таблицы
CREATE TABLE Invoice
(
Id INT, InvoiceNumber VARCHAR(10), Total INT
)
INSERT INTO Invoice
VALUES
(1,'200000',100),
(2,'200001',200),
(3,'200002',500),
(4,'200003',700),
(5,'200004',200),
(6,'200005',100),
(7,'200006',300)
CREATE TABLE HoldingTaxes
(
Id INT, HoldingTaxCode VARCHAR(10),HoldedAmount INT)
)
INSERT INTO HoldingTaxes
VALUES
(1,'ARV1',20),
(1,'ARV2',30),
(1,'ARV3',35),
(2,'ICA1',20),
(2,'ARV1',10),
(1,'ICA3',50)
Я хочу, чтобы запрос, который возвращает что-то вроде этого:
InvoiceNumber Total ARV1 ARV2 ARV3 ICA1 ICA2 ICA3
200000 100 20 30 35 null null 50
Это то, что я я пытаюсь сделать с моими реальными столами
SELECT T0.DocNum [No. Factura],
CASE
WHEN t5.WTCode ='ARV1' and (t5.U_Ret_ML <>0 AND t5.U_Ret_ML is not null)
THEN 'Perro1'
else NULL
end AS ARV1
,
CASE
WHEN t5.WTCode ='ICA1' and (t5.U_Ret_ML <>0 AND t5.U_Ret_ML is not null)
THEN 'Perro2'
else NULL
end AS ICA1
FROM OINV T0
INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode
INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
INNER JOIN OITW T3 ON T2.ItemCode = T3.ItemCode
INNER JOIN INV5 T5 ON T5.AbsEntry = T0.DocEntry
WHERE T1.WhsCode = T3.WhsCode`enter code here`
GROUP BY T0.DocNum,T0.DocDate,T0.DocTotal, T0.GrosProfit, T4.SlpName,T5.WTCODE,t5.U_Ret_ML
Я добавлю некоторые объяснения на основе вашего ответа, спасибо – Skatalitico
обновил скрипку на основе вашего обновления. – Pirion