Sql 总结各市场的平衡情况
大家好,我遇到了为我的案例陈述求总销售额的问题。我尝试在SalesYTD前面放一个求和函数,得到的错误是sales旁边的synthax错误。我还尝试了按salesytd分组,但没有成功,因为它给我的错误列“PERSON.StateProvinceID.StateProvinceID”在选择列表中无效,因为它不包含在聚合函数或GROUP by子句中。下面是我的问题。我的查询很好,我只是把它加起来Sql 总结各市场的平衡情况,sql,sql-server,Sql,Sql Server,大家好,我遇到了为我的案例陈述求总销售额的问题。我尝试在SalesYTD前面放一个求和函数,得到的错误是sales旁边的synthax错误。我还尝试了按salesytd分组,但没有成功,因为它给我的错误列“PERSON.StateProvinceID.StateProvinceID”在选择列表中无效,因为它不包含在聚合函数或GROUP by子句中。下面是我的问题。我的查询很好,我只是把它加起来 USE AdventureWorks2014; GO SELECT STATEPROV
USE AdventureWorks2014;
GO
SELECT STATEPROVINCEID,A.NAME,A.COUNTRYREGIONCODE,(b.SALESYTD),
CASE
WHEN A.TerritoryID = '1' THEN 'WESTERN MARKET'
WHEN A.TerritoryID = '2' THEN 'NORTH EASTERN MARKET'
WHEN A.TerritoryID = '3' THEN 'MID WESTERN MARKET'
WHEN A.TerritoryID = '4' THEN 'SOUTH WESTERN MARKET'
WHEN A.TerritoryID = '5' THEN 'SOUTH EASTERN MARKET'
ELSE 'OTHER'
END AS MARKET
FROM PERSON.STATEPROVINCE as A INNER JOIN SALES.SalesTerritory AS B
ON A.TerritoryID = B.TerritoryID
WHERE A.CountryRegionCode = 'US'
如果您只需要西南市场今年迄今为止的总销售额,那么您可以对该市场的
SALESYTD
列进行条件聚合:
SELECT SUM(CASE WHEN A.TerritoryID = '4' THEN b.SALESYTD ELSE 0 END) AS total_sales
FROM PERSON.STATEPROVINCE a
INNER JOIN SALES.SalesTerritory b
ON a.TerritoryID = b.TerritoryID
WHERE a.CountryRegionCode = 'US'
如果您需要所有地区的总和,则可以使用分组依据
:
SELECT a.TerritoryID, SUM(b.SALESYTD) AS total_sales
FROM PERSON.STATEPROVINCE a
INNER JOIN SALES.SalesTerritory b
ON a.TerritoryID = b.TerritoryID
WHERE a.CountryRegionCode = 'US'
GROUP BY a.TerritoryID
我终于把一切都安排好了。谢谢大家。这是我的问题
SELECT SUM(b.SALESYTD) AS TOTALSALES,
case
when a.TerritoryID = '1' then 'WESTERN MARKET'
WHEN A.TERRITORYID = '2' THEN 'NORTH EASTERN MARKET'
when a.TerritoryID = '3' then 'MID WESTERN MARKET'
WHEN A.TerritoryID = '4' THEN 'SOUTH WESTERN MARKET'
WHEN A.TERRITORYID = '5' THEN 'SOUTH EASTERN MARKET'
else 'OTHER'
end as MARKETS
FROM PERSON.STATEPROVINCE a
INNER JOIN SALES.SalesTerritory b
ON a.TerritoryID = b.TerritoryID
WHERE a.CountryRegionCode = 'US'
GROUP BY a.TerritoryID
所有市场的所有销售额和市场专栏如何?比如西南=7亿美元