SQL-嵌套查询中的表之间传递值

时间:2018-11-21 13:19:29

标签: sql sql-server

这里忠实的python试图通过SQL查询而不是Pandas完成任务。这可能是一个非常基本的问题,但是在这里:

因此,我有一个名为Reading的表,其中显示了不同位置的每月用电量:

=== Reading ===
ID  PlacementID DateFrom    DateUntil   Usage
1   3552        2018-07-01  2018-07-31  5992
2   3552        2018-08-01  2018-08-31  6318
3   3554        2018-08-01  2018-08-31  4782
4   3554        2018-09-01  2018-09-30  2001
5   3558        2018-08-01  2018-08-31  1582
6   3558        2018-09-01  2018-09-30  1825

我还有一个名为ReadingDay的表,该表以类似的方式存储每日使用量值-但是,它不包含PlacementID-而是通过与“ ID”相对应的称为“ ReadingID”的列与Reading表相关阅读中的列:

=== ReadingDay ===
ID  ReadingID   Date        Usage
1       1       2018-07-01  302
2       1       2018-07-02  254
....
182     6       2018-09-30  186
183     6       2018-09-31  104

在这种情况下,我的目的是查询ReadingDay表以查找属于Reading表中声明的PlacementID 3552和3558的所有实例,并在ReadingDay表中创建一个名为“ PlacementID”的列,以便无需查看读数表即可轻松查看数据中引用了哪个位置。

这是我尝试执行的非功能性新手代码(即使对我来说,这种方法也不起作用的原因也是显而易见的,但到目前为止,这是我最好的选择):

SELECT ID, ReadingID, Date, Usage 
FROM ReadingDay
WHERE ReadingID IN (
    SELECT ID
    FROM Reading
    WHERE PlacementID IN (3552, 3558)
)
INSERT PlacementID

1 个答案:

答案 0 :(得分:0)

选择rd.ID,rd.ReadingID,rd.Date,rd.Usage和r.PlacementID
从ReadingDay rd开始 内部联接 阅读r 在rd.ID = r.PlacementID

r.PlacementID IN(3552,3558)