sql-server - SQL 服务器 : Create new query that matches prices and values from two separate queries

标签 sql-server database select-query createquery

我有一个数据库问题,我不知道如何编码,所以非常感谢任何类型的帮助。

基本上就是将不同的类次与相应的价格进行匹配。

我有两个问题。 . .

第一个查询包含基于高峰时段(一天中的 7 点到 22 点)或非高峰时段(一天中的所有其他时间)的价格

SQLQuery1.sql 
dte          Peak          Offpeak
3-23-2015    32.6          17.12
3-24-2015    34.98         17.21
3-25-2015    31.87         19.45

第二个查询包含每小时不同的值

WP-Schedule.sql
CPT         Resource      1    2    3    4    5    6    7    8  . . . 24
3-23-2015   WP1         -34  -34  -37  -29  -17    0  -23   -3        25
3-23-2015   WP2         -36  -35  -36  -31  -19   14   15    0        34
3-23-2015   WP3         -34  -34  -35  -31  -18   18   19    3        31
3-24-2015   WP1         -32  -32  -32  -34  -19   15   21    0        30
3-24-2015   WP2         -34  -32  -29  -32  -20   21   23    4        18
3-24-2015   WP3         -36  -35  -36  -31  -19   14   15    0        34
3-25-2015   WP1         -34  -34  -37  -29  -17    0   23    0        25
3-25-2015   WP2         -32  -32  -32  -34  -19   15   21    0        30
3-25-2015   WP3         -34  -32  -29  -32  -20   21   23    16       18

我尝试对这两个查询执行的操作是使用这些信息创建一个新查询,以显示每种资源每小时的价格。条件是,如果 WP-Schedule.sql 查询中的值小于 0,则每小时仅收取费用。此外,如果该小时是高峰时段,则应使用高峰价格那天,如果不是,则使用 Offpeak 价格。

如果我手动创建第一行应该是这样的:

dte/CPT    Resource   1     2      3      4      5      6    7    8 . . . 24
3-23-2015  WP1     17.12  17.12  17.12  17.12   17.12   0  32.6 32.6       0

在此编码方面的帮助将不胜感激!!!!

最佳答案

一种方法是使用 24 个 CASE 表达式。

SELECT ...
...
CASE WHEN s.[1] < 0 THEN p.OffPeak ELSE 0 END AS [1],
...
CASE WHEN s.[7] < 0 THEN p.Peak ELSE 0 END AS [7],
...
FROM (YourFirstQuery) p
JOIN (YourSecondQuery) s
  ON p.dte=s.CPT

关于sql-server - SQL 服务器 : Create new query that matches prices and values from two separate queries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45015089/

相关文章:

c# - 如何按多个字段分组并获取另一个字段的计数

sql-server - 更新存储在 SQL Server 中 XML 列中的 XML

sql - 用户定义的函数 SQL Server 2005 被错误地标记为非确定性?

sql-server - 将一个表格行映射到另一个表格多行

php - 使用另一个表从表中删除记录?

android - sqlite android 中的波斯语/阿拉伯语搜索给出了错误的结果

sql-server - 在独立应用程序中,业务逻辑必须位于何处?

java - 如何在单个服务器上将 Hibernate 与多个数据库一起使用

mysql - 我需要加快对大表的特定 mysql 查询

php - MYSQL查询排除特定条件下的记录