Quote Originariamente inviata da optime Visualizza il messaggio
e allora non capisco la domanda: continuerai a farlo da codice
scusa ma non capisco le domande tue allora .

io da codice creo un csv lanciando quella query.
ma crea un csv prendendo in automatico i campi che mi tira fuori dandogli quella struttura.

qui eseguo la query:
codice:
from utils import *

def fatture():
    cmd = """
        SELECT 'T' TESTATA,
            TRIM(CONTO) CODICE_CLIENTE,
            MD.NPUDSTF NPU,
            TRIM(MD.NUMERAT_C4) TIPO_DOC,
            TRIM(MD.SERIE_C4)
            || '/'
            || TRIM(MD.NUM_C4)
            || '/'
            || TRIM(MD.PERIODO_C4) NUM_DOC,
            MD.DATDOC DATA_DOCUMENTO,
            'R' RIGA,
            TRIM(MD.NPAM) NPAM,
            MD.QUANTI QTA,
            MD.SCONTO1 SC1,
            MD.SCONTO2 SC2,
            MD.SCONTO3 SC3,
            MD.PREZZO PREZZO_UNI,
            MD.IMPORTO IMP_RIGA
        FROM MOV_MAG_DETT MD
        WHERE MD.FVL       = ' '
            AND MD.DITTA       = 'XXL'
            AND MD.CONTO       = 'CLMT500532'
            AND MD.NUMERAT_C4 IN ('NF', 'NC')
            AND TRIM(MD.SERIE_C4)
            || '/'
            || TRIM(MD.NUM_C4)
            || '/'
            || TRIM(MD.PERIODO_C4) = 'V1/111/2222' ;
"""
    create_csv('fatture.csv', cmd)
qui creo il csv:
codice:
import pyodbc
import csv

def conn():
    cnxn = pyodbc.connect("...........")
    return cnxn

def create_csv(nome, cmd):
    cursor = conn().cursor()
    rows = cursor.execute(cmd)
    with open('csv/' + nome, 'w', newline='') as csvfile:
        writer = csv.writer(csvfile, delimiter=';')
        for row in rows:
            writer.writerow(row)
ora la mia domanda è: è possibile strutturare la query per dare un'altra struttura al csv senza toccare la funzione create_csv??
oppure devo cambiare la struttura della funzione??

come vedi questa funzione si limita a prendere i campi e metterli nel file.
invece a me serve un'altra struttura csv.
da qui la domanda sopra.