SQLite – 加入两个子查询
发布时间:2020-12-12 18:52:57 所属栏目:百科 来源:网络整理
导读:或者至少我认为它们被称为子查询(新手和SQLite中的自我训练).我有来自同一数据库中两个表的两个SELECT语句.我想沿着列日期和符号加入这两个子查询.子查询分别工作正常,但是当我尝试JOIN时,我得到一个错误(语句中的错误:接近“JOIN”:语法错误).这是我的查
或者至少我认为它们被称为子查询(新手和SQLite中的自我训练).我有来自同一数据库中两个表的两个SELECT语句.我想沿着列日期和符号加入这两个子查询.子查询分别工作正常,但是当我尝试JOIN时,我得到一个错误(语句中的错误:接近“JOIN”:语法错误).这是我的查询字符串:
SELECT date,symbol,SUM(oi*contract_settle) AS oi_dollar FROM (SELECT date,oi,contract_settle FROM ann UNION SELECT date,contract_settle FROM qtr) GROUP BY date,symbol HAVING oi_dollar > 0 JOIN (SELECT date,ret FROM crsp USING (date,symbol)) 谢谢! 解决方法您的JOIN子句需要在GROUP BY子句之前.此外,我知道sqlite确实有一些不同的“可选”连接语法,但以下更标准的查询应该有效:SELECT a.date,a.symbol,SUM(a.oi * a.contract_settle) AS oi_dollar FROM (SELECT date,contract_settle FROM ann UNION SELECT date,contract_settle FROM qtr) a INNER JOIN crsp c ON a.date = c.date AND a.symbol = c.symbol WHERE a.oi * a.contract_settle > 0 GROUP BY a.date,a.symbol 如果您对oi和contract_settle列有更多了解(例如,它们永远不能都是负数),则a.oi<>的WHERE子句. 0和a.contract_settle<> 0可能会有更好的表现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |