我有一张如下表格。
Gowden | Year Month Stock Item Plan_Stock(In Tons) Avail_Stock(In Tons)
GD1 | 2015 | Jun | White Rice | 20 | 15
GD1 | 2015 | Jun | Wheat | 20 | 20
GD1 | 2015 | Jun | Brown Rice | 10 | 10
GD2 | 2015 | Jun | White Rice | 20 | 20
GD2 | 2015 | Jun | Wheat | 20 | 10
GD1 | 2015 | Jan | White Rice | 20 | 10
GD1 | 2015 | Jan | Wheat | 20 | 10
GD1 | 2015 | Jan | Brown Rice | 10 | 5
GD2 | 2015 | Jan | White Rice | 20 | 20
GD2 | 2015 | Jan | Wheat | 20 | 20
GD2 | 2015 | Jan | Brown Rice | 10 | 10
GD3 | 2015 | Jan | White Rice | 20 | 5
GD3 | 2015 | Jan | Wheat | 20 | 5
GD3 | 2015 | Jan | Brown Rice | 10 | 5
GD1 | 2014 | Jun | White Rice | 15 | 10
GD2 | 2014 | Jun | White Rice | 15 | 10
GD3 | 2014 | Jun | White Rice | 15 | 10
我想查看其中,它将计算最近可用的计划可用库存项目的百分比。无论列表中的项目如何。例如GD1最近的更新是在2015年6月20 + 20 + 10 = 50吨计划。 15 + 20 + 10 = 45吨可用。所以计划的可用百分比是90%。如下图所示。
Gowden | Year Month Stock % Precent
GD1 | 2015 | Jun | 90% |
GD2 | 2015 | Jun | 75% |
GD3 | 2015 | Jan | 30% |
有没有办法在一个视图中制作这个或者我需要编写脚本来计算?感谢并提前感谢所有人。
答案 0 :(得分:0)
试试这个:
let dateString = "2015-10-15"
let formater = DateFormatter()
formater.dateFormat = "yyyy-MM-dd"
print(dateString)
formater.locale = Locale(identifier: "en_US_POSIX")
let date = formater.date(from: dateString)
print(date!)
答案 1 :(得分:0)
我试过设置approch。我没有你的架构所以我无法测试。可能需要将month
或year
转换为date type
,然后应用max
函数。
SELECT gowden, year, month, 100*sum(avail_stock)/sum(plan_stock)
FROM your_table
GROUP BY gowden
HAVING year=max(year) and month=max(month)
答案 2 :(得分:0)
我尝试过两次查询。 1)SELECT gowden,年,月,100 *总和(avail_stock)/ sum(plan_stock) 来自your_table GROUP BY gowden HAVING年=最大(年)和str_to_date(月,'%b')=最大(str_to_date(月,'%b'))
!工作,但我看到的问题是缺少一些gowdens。我不知道为什么。
2)选择gowden,年,月,100 *总和(avail_stock)/ sum(plan_stock) 来自your_table group by gowden,year,month HAVING year = max(year)and str_to_date(month,'%b')= max(str_to_date(month,'%b'))ORDER BY gowden ASC,year,month DESC。
工作但不仅是最近一个月,所有月份的数据都会出现,但是从最近的一年和一个月开始下降。 从视图我得到我可以查询它获得每个gowden的最新数据。
感谢Pablo Santa和Hitesh。