2016-01-25 3 views
0

Я выполняю некоторый запрос, и я хочу сохранить результат запроса как новую таблицу. Я использую Jupyter notebook, где я подключился к базе данных sqlite, в которой есть таблица, которую я использую в запросе.Ошибка при создании таблицы в Python Sqlite

sql2=""" 

create table sales_fact_unique as 
(
with min_leads as 
( 
    select LeadId, min(BookingCreateDate)as FirstBookingDate 
    from 
    sales_fact 
    where GrossRevenue <>0 
    group by 
    LeadId 
) 

select a.LeadId, a.FirstBookingDate, b.ArrivalDate, 
    b.DepartureDate,b.DealWonSalesPersonId, 
    b.GrossRevenue,b.EngineFromFinalURL,b.CampaignFromFinalUrl 
from 
    min_leads as a 
inner join 
(select * from sales_fact where grossrevenue <>0) as b 
on a.leadid=b.leadid 
and a.FirstBookingDate=b.BookingCreateDate 
) 
; 

""" 


conn.execute(sql2) 
conn.commit() 

Вот ошибка, которую я получаю.

<ipython-input-42-bc72021206b2> in <module>() 
    45 
    46 
---> 47 c.execute(sql2) 
    48 conn.commit() 
    49 

OperationalError: near "(": syntax error 

Любая идея?

+0

Вы действительно должны использовать ORM такие как SQLAlchemy. Это сделает вашу жизнь намного проще. – Mantis

+0

Любые предложения по использованию этого с sqlite? – Baktaawar

+0

У вас есть правильное количество символов открытия и закрытия '()', но я думаю, что вам нужно дополнительное закрытие и открытие где-то. –

ответ

1

CREATE TABLE ... AS ... требует запроса, а не подзапрос, поэтому вы должны удалить крайнюю пару скобок:

> CREATE TABLE t AS (SELECT 1); 
Error: near "(": syntax error 
> CREATE TABLE t AS SELECT 1; 
Смежные вопросы