将SQL结果传递给第二个SQL查询

时间:2015-08-29 08:59:20

标签: sql-server

我即将结束设置我的第一个Python脚本,其中包括查询我的SQL Server(出于隐私原因,我已删除了凭据)。

这是我可以成功登录和查询我的SQL Server数据库的代码的摘录。

我知道我的2个SELECT查询独立工作,因为我已经测试过了。但我已经将第一个SELECT查询设置为一个变量,我希望将其传递给第二个选择查询where子句。

在SQL术语中,我希望将调整后的日期设置为变量StartDate(来自我的第一个SELECT),并将其传递给我的第二个SELECT语句中的Where语句。我认为我没有正确设置变量。为了再次确认,我已经验证了SELECT语句可以在Python中运行。

我需要添加一些东西吗?任何建议表示赞赏。

import csv
import os
import urllib.request
import pymssql

conn = pymssql.connect(server='', user='', password='', database='')


StartDate = conn.cursor()
StartDate.execute('SELECT Dateadd(dd, -19, MAX(LastDateValue)) FROM tbl_Date')

ASXCodes = conn.cursor()
ASXCodes.execute('SELECT ASXCode FROM tbl_Company WHERE (ASX200 = 1 OR
    MarketIndex =1 OR SegmentIndex = 1) AND Delisted = 0 AND LastTraded 
    >= StartDate ORDER BY ASXCode')

1 个答案:

答案 0 :(得分:1)

猜猜 - 你不能在一个查询中做所有事情吗?

SELECT ASXCode FROM tbl_Company WHERE (ASX200 = 1 OR MarketIndex =1 OR SegmentIndex = 1) AND Delisted = 0 AND LastTraded >= (SELECT Dateadd(dd, -19, MAX(LastDateValue)) FROM tbl_Date) ORDER BY ASXCode

另外,我会想象tbl_Date.LastDateValue被编入索引?如果你得到很多记录,那可能会相当昂贵......