Наименование колонки с пробелом в запросе sql
Здравствуйте. Приношу извинения, что не по теме 1с. Пишу запрос sql в python, и выдает ошибку, если название поля сделать с пробелом, при этом в каком-нибудь редакторе sql запросов ошибки нет. Пример в python "select 1+1 "число целое""\ выдаст ошибку на "число целое", если убрать кавычки и объединить ЧислоЦелое, то ошибка пропадает. В редакторе запросов sql select 1+1 "число целое" ошибки не вызывает. Пробовал 'число целое', все равно ошибка. Подскажите, пожалуйста, как в python в запросе sql сделать название поля с пробелом?
По теме из базы знаний
- Некоторые ошибки и «проблемные» особенности реализации встроенного языка платформы 1С:Предприятие 7.7
- Импорт из EXCEL и других источников (xls, xlsx, xlsb, ods, sxc, dbf, mxl, csv, clipboard, sql) в 1С
- Запрос к внешней базе данных MS SQL Server
- Интеграция с сайтом на WooCommerce (WordPress) через MySQL
- Управляем базами на SQL, не выходя из 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) работает в редакторе sql запросов, а в pycharm ошибка
(2)
File "C:\Users\dfUser\PycharmProjects\pythonProject1\sql_to_exel.py", line 15
"sum(tab.qty) ["Число целое"]," \
^^^^^^^^^^
SyntaxError: invalid syntax
"sum(tab.qty) ["Число целое"]," \
^^^^^^^^^^
SyntaxError: invalid syntax
(2)
А в чем сакральный смысл наименования колонки с пробелом?
смысл в том, что я сразу записываю данные из запроса в файл эксель
from datetime import datetime
import pandas as pd
import psycopg2
from psycopg2 import Error
from sqlalchemy import create_engine
try:
connection = create_engine('postgresql://user:1111@localhost/test_db')
current_datetime = datetime.now()
file_name = str(current_datetime.strftime("%d.%m.%Y %H-%M") + '.xlsx')
textQuery = "sel ect " \
"sum(tab.qty) ["Число целое"]," \
"sum(tab.id) id," \
"fr om test_table tab;" \
result = pd.read_sql(textQuery, connection)
result.to_excel('D:/'+file_name, index=False)
except (Exception, Error) as error:
print("Ошибка при работе с PostgreSQL", error)
finally:
print("Файл записан")
Показать
(5) Попробуй это
from sqlalchemy import create_engine, Table, MetaData, select, func
import pandas as pd
from datetime import datetime
# Создание движка SQLAlchemy
engine = create_engine('postgresql://user:1111@localhost/test_db')
# Создание объекта MetaData
metadata = MetaData()
# Инициализировать таблицу test_table
test_table = Table('test_table', metadata, autoload_with=engine)
# Создание SQLAlchemy Core запроса
query = select([
func.sum(test_table.c.qty).label("Число целое"),
func.sum(test_table.c.id).label("id")
])
# Выполнение запроса и чтение данных в DataFrame
with engine.connect() as connection:
result = connection.execute(query)
df = pd.DataFrame(result.fetchall(), columns=result.keys())
current_date = datetime.now().strftime("%d.%m.%Y")
filename = f"{current_date}.xlsx"
df.to_excel(filename, index=False)
print(f"Данные успешно сохранены в файл {filename}")
Показать
Работает всё:
https://onecompiler.com/sqlserver/42pq4h4dh
Можно так попробовать:
SELECT 1+1 as ["Число целое"]
Можно так попробовать:
SELECT 1+1 as ["Число целое"]
Прикрепленные файлы:
import sqlite3
# Создаем соединение с временной базой данных в памяти
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()
# Выполняем запрос
cursor.execute("SELECT 1+1 as 'Целое число'")
# Получаем результат
result = cursor.fetchone()
print(result[0])
# Закрываем соединение
conn.close()
ПоказатьВывод: 2
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот