0
У меня есть 2 таблицы, как это:SQL Server - КОГДА - ELSE
- Таблица
CT
:Number
,CtID
,Date
,CTIE
- Таблица
VT
:Number
,VtID
,Quantities
И мой код:
SELECT
MAX(CT.Date), MAX(CT.CtID), VT.VtID,
SUM(VT.Quantities) AS SumVT,
CASE
WHEN CT.CTIE = 0 THEN SUM(VT.Quantities)
ELSE 0
END AS IMPORT,
CASE
WHEN CT.CTIE = 1 THEN SUM(VT.Quantities)
ELSE 0
END AS EXPORT
FROM
CT
INNER JOIN
VT ON CT.Number = VT.Number
GROUP BY
VT.VtID, CT.CTIE
ORDER BY
VT.VtID
Этот код работает нормально, но результат не тот, который я хочу. С некоторыми VtID
, которые имеют как CTIE = 1
, так и CTIE = 1
, SQL теперь возвращает 2 отдельных строки с одинаковыми VtID
, один для CTIE = 0
и один для CTIE = 1
. Но мне нужно, чтобы отобразить только один ряд для каждого VtID
вместо 2.
вау спасибо за вашу помощь. Кстати у меня есть другая версия этого кода, если кто-то хочет узнать: D 'ВЫБОР Temp.VTID, SUM (Temp.Import) AS Import, \t SUM (Temp.Export) AS Экспорт \t FROM (SELECT VTID, Количества, CASE WHEN CT.CTIE = 0 THEN Количества ELSE 0 END AS Import, CASE WHEN CT.CTIE = 1 THEN Количества ELSE 0 END AS Export ОТ VT INNER JOIN CT ON CT.Number = VT. Number) AS Temp \t GROUP BY Temp.VTID.' –