-1

i want to export this data mix in csv, i've done it, it's all right but there's only one thing that doesn't match with what i thought.

If i select amm.atc_TipoSocieta it returns always null field, even if the relation is correct and the table is right populed.

Query:

 SET SESSION group_concat_max_len=9999999;

SELECT pre.cq_IDCessione,null,pre.cq_IDCliente,pre.cq_IDSocieta,pre.cq_IDFigura, CASE
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ditta Individuale') = 0) THEN 4
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ente') = 0) OR (STRCMP(amm.atc_TipoSocieta, 'Ente Pubblico') = 0) OR (STRCMP(amm.atc_TipoSocieta, 'Ente Statale') = 0) OR (STRCMP(amm.atc_TipoSocieta, 'Pubblica') = 0) THEN 3
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ente Parapubblico') = 0) THEN 5
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ministeriale') = 0) THEN 2
    ELSE 1
END,null,(select CONCAT( '[',
                GROUP_CONCAT(JSON_OBJECT('id', cliente.id, 'nome', cliente.nome, 'cognome', cliente.cognome, 'amm_id', cliente.amm_id, 'user_id', cliente.user_id, 'sesso', cliente.sesso, 'codice_fiscale', cliente.codice_fiscale, 'data_nascita', cliente.data_nascita, 'cittadinanza', cliente.cittadinanza, 'telefono', cliente.telefono, 'cellulare', cliente.cellulare, 'email', cliente.email, 'luogoNascita', cliente.luogoNascita, 'luogoResidenza', cliente.luogoResidenza, 'indirizzoResidenza', cliente.indirizzoResidenza, 'cap', cliente.cap, 'indirizzo_domicilio', cliente.indirizzo_domicilio, 'localita_domicilio', cliente.localita_domicilio, 'cap_domicilio', cliente.cap_domicilio, 'stato_civile', cliente.stato_civile, 'tipo_documento', cliente.tipo_documento, 'doc_localita_rilascio', cliente.doc_localita_rilascio, 'doc_data_rilascio', cliente.doc_data_rilascio, 'doc_data_scadenza', cliente.doc_data_scadenza, 'doc_ente_rilascio', cliente.doc_ente_rilascio, 'doc_numero', cliente.doc_numero, 'tipo_permesso', cliente.tipo_permesso, 'data_scadenza_permesso', cliente.data_scadenza_permesso, 'data_inizio_soggiorno', cliente.data_inizio_soggiorno, 'qualifica', cliente.qualifica, 'tipo_assunzione', cliente.tipo_assunzione, 'data_assunzione', cliente.data_assunzione, 'fondo_pensione', cliente.fondo_pensione, 'id_stipendio_spt', cliente.id_stipendio_spt, 'tfr_lordo', cliente.tfr_lordo, 'tfr_anticipi', cliente.tfr_anticipi, 'mese_anno_cedolino', cliente.mese_anno_cedolino, 'partita_iva', cliente.partita_iva, 'reddito', cliente.reddito, 'altri_impegni', cliente.altri_impegni, 'scadenze', cliente.scadenze, 'mod_invio_com', cliente.mod_invio_com, 'fondo_pensione_1', cliente.fondo_pensione_1, 'fondo_pensione_1_bool', cliente.fondo_pensione_1_bool, 'fondo_pensione_2', cliente.fondo_pensione_2, 'fondo_pensione_2_bool', cliente.fondo_pensione_2_bool))
                    ,']') 
                    from assiprest_produzione.cliente
                    where pre.cq_IDCliente = assiprest_produzione.cliente.id
    ),cli.data_assunzione,null,pre.cq_DataCaricamento,pre.cq_DataAnteTermine,cli.altri_impegni,null,cli.reddito,pre.cq_NumeroRate,pre.cq_ImportoRata,pre.cq_ProvvMontanteFG1,users.fdv_PPProvvInteressi,null,null,null,null,null,3
FROM (((assiprest_original.cessioni as pre
LEFT JOIN assiprest_original.atc AS amm ON pre.cq_IDSocieta = amm.atc_IDAtc)
LEFT JOIN assiprest_original.figuredivendita AS users ON users.fdv_IDFigura = pre.cq_IDFigura)
LEFT JOIN assiprest_produzione.cliente AS cli ON cli.id = pre.cq_IDCliente)
INTO OUTFILE 'C:/xampp/mysql/data/assiprest/preventivatore.csv'
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

atc table

EDIT:

I updated my code and 'solved' the amm.atc_TipoSocieta problem, removing the related left join and adding it to FROM clause, but doing this i came back to the preview problem, that's: 'Unknown column pre.cq_IDFigura in 'on clause''.

CODE:

 SET SESSION group_concat_max_len=9999999;

SELECT pre.cq_IDCessione,null,pre.cq_IDCliente,pre.cq_IDSocieta,pre.cq_IDFigura, CASE
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ditta Individuale') = 0) THEN 4
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ente') = 0) OR (STRCMP(amm.atc_TipoSocieta, 'Ente Pubblico') = 0) OR (STRCMP(amm.atc_TipoSocieta, 'Ente Statale') = 0) OR (STRCMP(amm.atc_TipoSocieta, 'Pubblica') = 0) THEN 3
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ente Parapubblico') = 0) THEN 5
    WHEN (STRCMP(amm.atc_TipoSocieta, 'Ministeriale') = 0) THEN 2
    ELSE 1
END,null,(select CONCAT( '[',
                GROUP_CONCAT(JSON_OBJECT('id', cliente.id, 'nome', cliente.nome, 'cognome', cliente.cognome, 'amm_id', cliente.amm_id, 'user_id', cliente.user_id, 'sesso', cliente.sesso, 'codice_fiscale', cliente.codice_fiscale, 'data_nascita', cliente.data_nascita, 'cittadinanza', cliente.cittadinanza, 'telefono', cliente.telefono, 'cellulare', cliente.cellulare, 'email', cliente.email, 'luogoNascita', cliente.luogoNascita, 'luogoResidenza', cliente.luogoResidenza, 'indirizzoResidenza', cliente.indirizzoResidenza, 'cap', cliente.cap, 'indirizzo_domicilio', cliente.indirizzo_domicilio, 'localita_domicilio', cliente.localita_domicilio, 'cap_domicilio', cliente.cap_domicilio, 'stato_civile', cliente.stato_civile, 'tipo_documento', cliente.tipo_documento, 'doc_localita_rilascio', cliente.doc_localita_rilascio, 'doc_data_rilascio', cliente.doc_data_rilascio, 'doc_data_scadenza', cliente.doc_data_scadenza, 'doc_ente_rilascio', cliente.doc_ente_rilascio, 'doc_numero', cliente.doc_numero, 'tipo_permesso', cliente.tipo_permesso, 'data_scadenza_permesso', cliente.data_scadenza_permesso, 'data_inizio_soggiorno', cliente.data_inizio_soggiorno, 'qualifica', cliente.qualifica, 'tipo_assunzione', cliente.tipo_assunzione, 'data_assunzione', cliente.data_assunzione, 'fondo_pensione', cliente.fondo_pensione, 'id_stipendio_spt', cliente.id_stipendio_spt, 'tfr_lordo', cliente.tfr_lordo, 'tfr_anticipi', cliente.tfr_anticipi, 'mese_anno_cedolino', cliente.mese_anno_cedolino, 'partita_iva', cliente.partita_iva, 'reddito', cliente.reddito, 'altri_impegni', cliente.altri_impegni, 'scadenze', cliente.scadenze, 'mod_invio_com', cliente.mod_invio_com, 'fondo_pensione_1', cliente.fondo_pensione_1, 'fondo_pensione_1_bool', cliente.fondo_pensione_1_bool, 'fondo_pensione_2', cliente.fondo_pensione_2, 'fondo_pensione_2_bool', cliente.fondo_pensione_2_bool))
                    ,']') 
                    from assiprest_produzione.cliente
                    where pre.cq_IDCliente = assiprest_produzione.cliente.id
    ),cli.data_assunzione,null,pre.cq_DataCaricamento,pre.cq_DataAnteTermine,cli.altri_impegni,null,cli.reddito,pre.cq_NumeroRate,pre.cq_ImportoRata,pre.cq_ProvvMontanteFG1,users.fdv_PPProvvInteressi,null,null,null,null,null,3
FROM assiprest_original.cessioni as pre, assiprest_original.atc as amm
LEFT JOIN assiprest_original.figuredivendita AS users ON users.fdv_IDFigura = pre.cq_IDFigura
LEFT JOIN assiprest_produzione.cliente AS cli ON cli.id = pre.cq_IDCliente
GROUP BY pre.cq_IDCessione
INTO OUTFILE 'C:/xampp/mysql/data/assiprest/preventivatore.csv'
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
  • when you get tired of mysql fiddles you might consider postgres as a serious time saver :) – Antony Gibbs Oct 31 '18 at 15:52
  • unfortunately i use as standard it to work in my company, an can't do anything to change it – Simone Battiato Oct 31 '18 at 16:59
  • Hi. Comma has lower precedence than keyword JOINs. Never mix them. PS Please read & act on [mcve]. Some obvious chopping would give less code with the same problem, this is not minimal. What did you learn when you googled your error message & number with & without your specific strings & read many questions & answers? I just wrote the preceding then googled 'site:stackoverflow.com unknown column' & the first hit was an answer. – philipxy Oct 31 '18 at 17:30
  • Possible duplicate of [MySQL unknown column in ON clause](https://stackoverflow.com/q/4065985/3404097) – philipxy Oct 31 '18 at 17:31
  • (As we can expect from from such an error message,) This is a faq. Please always google many clear, concise & specific versions/phrasings of your question/problem/goal with & without your particular strings/names & read many answers. Add relevant keywords you discover to your searches. If you don't find an answer then post, using 1 variant search as title & keywords for tags. See the downvote arrow mouseover text. When you do have a non-duplicate code question to post please read & act on [mcve]. Please use text, not images/links, for text, including tables. – philipxy Oct 31 '18 at 17:31
  • Please edit posts to be the best possible presentation, don't append EDITs. You don't need your previous buggy code when you change to the new code. But don't invalidate reasonable answers--if there are any then ask a new question. You can delete an unanswered question with a no-vote unaccepted answer. But please don't delete when it throws away reasonable & helpful answer effort. – philipxy Oct 31 '18 at 18:07

1 Answers1

0

Hard to tell just looking at the SQL, but one thing that jumps to me is that you are using a different table prefix for the first CASE WHEN statement. Could that play a role?

WHEN (STRCMP(assi.atc_TipoSocieta, 'Ditta Individuale') = 0) THEN 4 WHEN (STRCMP(amm.atc_TipoSocieta, 'Ente') = 0) OR...

  • Sorry, i've just typo, it doesn't work even if i change assi to amm – Simone Battiato Oct 31 '18 at 15:33
  • 1
    Then, when a query doesn't return what you expect, start by simplifying it way down. Select only the first 2 tables and specifically the contents of the atc_TipoSocieta column. Does that simplified query return data into the column? If yes, does the CASE statement. Then add another table and another table. For instance: SELECT amm.atc_TipoSocieta /* What do you see here? */ , (CASE ... END) AS CaseResult FROM assiprest_original.cessioni as pre LEFT JOIN assiprest_original.atc AS amm ON pre.cq_IDSocieta = amm.atc_IDAtc – Wendelius Oct 31 '18 at 15:43