3
我正在尝试创建一个将生成下表的查询。 我知道列名称(即每列的开始日期和结束日期,这些日期会根据月份/年份而变化,并且列数也会有所不同,因为某些月份可能会有6周)。sql - 创建单个查询以获取给定条件的值
池的数量也可能有所不同。可以有'n'个池。所以我创建了每个池(行)和每周(列)的查询。
假设有3个池(3行)和5个星期(5列),我可能需要运行3 * 5 = 15个查询。
有什么办法来创建一个单一的查询来解决这个问题吗?
任何人都可以帮助我解决这个问题吗?
我stiil工作这个..
--------------------------------------------------
row 0 | week1 | week2 | week3 | week4 | week5 |
st-end|jan1 -2|jan 3-9|jan10-17|jan18-24|jan25-31|
--------------------------------------------------
pool a| 100 | 105 | 309 | 345 | 234 |
pool b| 106 | 108 | 399 | 245 | 214 |
pool c| 120 | 145 | 359 | 365 | 274 |
--------------------------------------------------
这不是回答你的问题,只是评论...一般是什么样的情形中,我更喜欢从SQL切换到命令式编程(Java)。您可以创建一个准备好的语句,用于计算一个通用的“单元”,然后针对15个单元中的每一个执行它(通过改变某些参数)。没有什么不好的,你在15分钟内就完成了。如果计算和/或查询很昂贵,则可以缓存结果表。在SQL中执行所有这些操作可能变得棘手并且难以被其他人阅读/理解。 – gd1
如果没有看到要查询的表以创建表(结果集),则表明无法说明查询应该是什么。 –
@NickHolt - 假设我试图得到('pool a'- week1),(pool a - week 2)等等的组合,并且这种情况会发生在所有池中,因此我认为需要运行15个查询。我只想检查是否可以运行单个查询。 – user1514499