如何在某些期间列中按年份过滤

时间:2019-12-23 19:40:38

标签: sql

我正在尝试根据Year和Period(month)提取上一年使用情况的报告 我调整了顶行,为AND demand_period.year_for_period = YEAR(getdate())添加了一个过滤器,但随后意识到,这也消除了去年结果的可能性。 在添加YEAR语句之前,它提供了所有年份的全部使用情况总计,按月细分。 这是我到目前为止的内容:

SELECT (inv_mast.item_id) as [Item ID]
    ,inv_mast.item_desc as [Item Description]
    ,address.name as [Prim Supplier Name]
    ,SUM(CASE WHEN (demand_period.period = MONTH(getdate()) AND demand_period.year_for_period = YEAR(getdate()))THEN inv_period_usage ELSE 0 END) AS [Period1Usage]
    ,SUM(CASE WHEN demand_period.period = '2' THEN inv_period_usage ELSE 0 END) AS [Period2Usage]
    ,SUM(CASE WHEN demand_period.period = '3' THEN inv_period_usage ELSE 0 END) AS [Period3Usage]
    ,SUM(CASE WHEN demand_period.period = '4' THEN inv_period_usage ELSE 0 END) AS [Period4Usage]
    ,SUM(CASE WHEN demand_period.period = '5' THEN inv_period_usage ELSE 0 END) AS [Period5Usage]
    ,SUM(CASE WHEN demand_period.period = '6' THEN inv_period_usage ELSE 0 END) AS [Period6Usage]
    ,SUM(CASE WHEN demand_period.period = '7' THEN inv_period_usage ELSE 0 END) AS [Period7Usage]
    ,SUM(CASE WHEN demand_period.period = '8' THEN inv_period_usage ELSE 0 END) AS [Period8Usage]
    ,SUM(CASE WHEN demand_period.period = '9' THEN inv_period_usage ELSE 0 END) AS [Period9Usage]
    ,SUM(CASE WHEN demand_period.period = '10' THEN inv_period_usage ELSE 0 END) AS [Period10Usage]
    ,SUM(CASE WHEN demand_period.period = '11' THEN inv_period_usage ELSE 0 END) AS [Period11Usage]
    ,SUM(CASE WHEN demand_period.period = '12' THEN inv_period_usage ELSE 0 END) AS [Period12Usage]
FROM inv_mast
    JOIN inv_loc ON inv_loc.inv_mast_uid = inv_mast.inv_mast_uid
    JOIN inventory_supplier_x_loc ON inventory_supplier_x_loc.location_id = inv_loc.location_id
    JOIN inventory_supplier ON inventory_supplier.inventory_supplier_uid = inventory_supplier_x_loc.inventory_supplier_uid
    JOIN supplier ON supplier.supplier_id = inventory_supplier.supplier_id
    JOIN address ON (address.id = supplier.supplier_id)
    JOIN inv_period_usage ON inv_period_usage.location_id = inv_loc.location_id
    JOIN demand_period ON (inv_period_usage.demand_period_uid = demand_period.demand_period_uid)
WHERE
    (inv_loc.location_id = '100001')
    AND (inventory_supplier_x_loc.primary_supplier = 'Y')
    AND (inv_mast.item_id = '111')
GROUP BY item_id, item_desc, name

我如何编辑SELECT语句以包括最近的12个月,包括前一年? 谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

添加此内容:

override func viewDidLayoutSubviews() {
   super.viewDidLayoutSubviews()
     profileImageView.layer.cornerRadius = profileImageView.frame.height / 2.0
 }