2016-08-19 7 views
1

у меня есть это:Показать как одни и те же столбцы с другим типом

use [VERPLOEGEN-NAV2009-LIVE] 
SELECT V.No_, VPL.[Location Code],V.Name, 
     SUM(VPL.Amount) AS Total, 
     V.[Freight-free Limit] 
    -- ISNULL(CAST(V.[Freight-free Limit] AS VARCHAR(10)), 'geen waarde') 
FROM [Verploegen POC$Purch_ Inv_ Line] VPL 
    JOIN [Verploegen POC$Vendor] V 
    ON VPL.[Buy-from Vendor No_] = V.No_ 
--WHERE [Buy-from Vendor No_] = '3929' -- is empty??' --'3932' --'3929' --'3923' --'3904' --'3885' --'3820' --'3894' 
WHERE VPL.[Buy-from Vendor No_] = '3929' 
     AND VPL.Type = 1 AND ([Posting Date] BETWEEN '2016-01-01' AND '2016-12-31') 
GROUP BY VPL.[Location Code], V.[Freight-free Limit], V.No_, V.Name --, VPL.[Direct Unit Cost] 
ORDER BY V.Name 

И есть СВОЙСТВА: VPL.Type = 1, но у вас есть один и те же СВОЙСТВА с type=2. Но в результатах я хочу показать оба свойства, поэтому с типом = 1 и с type =2. Поскольку Всего type = 1 отличается тогда Всего type = 2. Результат с type = 1 выглядит так:

3929 AM ASF Fischer BV 20.89000000000000000000 350.00000000000000000000 
3929 DB ASF Fischer BV -0.29000000000000000000 350.00000000000000000000 
3929 DL ASF Fischer BV 0.34000000000000000000 350.00000000000000000000 
3929 RD ASF Fischer BV 20.06000000000000000000 350.00000000000000000000 
3929 ZM ASF Fischer BV 0.04000000000000000000 350.00000000000000000000 

Так Как сделать дополнительный столбец с типом = 2?

Спасибо

Если я это сделать:

use [VERPLOEGEN-NAV2009-LIVE] 
SELECT V.No_, VPL.[Location Code],V.Name, 
     SUM(VPL.Amount) AS Total, 
     SUM(VPL.Amount) as total2, 
     V.[Freight-free Limit] 
    -- ISNULL(CAST(V.[Freight-free Limit] AS VARCHAR(10)), 'geen waarde') 
FROM [Verploegen POC$Purch_ Inv_ Line] VPL 
    JOIN [Verploegen POC$Vendor] V 
    ON VPL.[Buy-from Vendor No_] = V.No_ 
--WHERE [Buy-from Vendor No_] = '3929' -- is empty??' --'3932' --'3929' --'3923' --'3904' --'3885' --'3820' --'3894' 
WHERE VPL.[Buy-from Vendor No_] = '3929' 
     AND VPL.Type = 1 AND ([Posting Date] BETWEEN '2016-01-01' AND '2016-12-31') 
GROUP BY VPL.[Location Code], V.[Freight-free Limit], V.No_, V.Name --, VPL.[Direct Unit Cost] 
ORDER BY V.Name 

, как результат этого:

3929 AM ASF Fischer BV 20.89000000000000000000 20.89000000000000000000 350.00000000000000000000 
3929 DB ASF Fischer BV -0.29000000000000000000 -0.29000000000000000000 350.00000000000000000000 
3929 DL ASF Fischer BV 0.34000000000000000000 0.34000000000000000000 350.00000000000000000000 
3929 RD ASF Fischer BV 20.06000000000000000000 20.06000000000000000000 350.00000000000000000000 
3929 ZM ASF Fischer BV 0.04000000000000000000 0.04000000000000000000 350.00000000000000000000 

Но Total и total2 имеют теперь одинаковые значения

Вы имеете в виду, как это ?

use [VERPLOEGEN-NAV2009-LIVE] 
SELECT V.No_, VPL.[Location Code],V.Name, 

     sum(case when Type =1 then 1 else 0 end)As type1sum, 
     sum(case when Type =2 then 1 else 0 end)As type2sum, 
     V.[Freight-free Limit] 
    -- ISNULL(CAST(V.[Freight-free Limit] AS VARCHAR(10)), 'geen waarde') 
FROM [Verploegen POC$Purch_ Inv_ Line] VPL 
    JOIN [Verploegen POC$Vendor] V 
    ON VPL.[Buy-from Vendor No_] = V.No_ 
--WHERE [Buy-from Vendor No_] = '3929' -- is empty??' --'3932' --'3929' --'3923' --'3904' --'3885' --'3820' --'3894' 
WHERE VPL.[Buy-from Vendor No_] = '3929' 
     AND ([Posting Date] BETWEEN '2016-01-01' AND '2016-12-31') 
GROUP BY VPL.[Location Code], V.[Freight-free Limit], V.No_, V.Name --, VPL.[Direct Unit Cost] 
ORDER BY V.Name 

выход:

3929 AM ASF Fischer BV 4 39 350.00000000000000000000 
3929 DB ASF Fischer BV 4 67 350.00000000000000000000 
3929 DL ASF Fischer BV 8 128 350.00000000000000000000 
3929 RD ASF Fischer BV 4 36 350.00000000000000000000 
3929 ZM ASF Fischer BV 1 10 350.00000000000000000000 

Но где я должен поставить сумму (количество), то?

ответ

0

Удалить Vpl.type откуда и использовать SUM с футляром ..

select 
col1.. 
,sum(case when Type =1 then amount else 0 end)As type1sum, 
sum(case when Type =2 then amount else 0 end)As type2sum 
from 
table 
grouping columns 
+0

Спасибо. Я редактирую сообщение – SavantCode

+0

@SavantCode: я обновил, это даст вам две суммы на основе значения vpltype – TheGameiswar

+0

Спасибо! Очень хорошо – SavantCode

Смежные вопросы