Search code examples
mysqlmysql-error-1064

MySQL query error 1064 (syntax error)


I'm trying to make the following query work but it seems to contain an error that I can't find. The query in question is:

select 
      A.*, 
      SD.* 
   from 
      (
         ( select 
                 V71.Sollevamento_idAttrezzatura, 
                 V71.Num_id_ON,  
                 V71.Affidato_INAIL, 
                 V71.Esito_Verifica, 
                 V71.Prima_Verifica, 
                 V71.Sospensione, 
                 V71.Data_Verbale, 
                 V71.Scadenza, 
                 CO.Nome, 
                 CO.Cognome, 
                 CO.CF, 
                 V71.Costo, 
                 V71.Sconto as ScontoVerbale, 
                 V71.Maggiorazione as MaggiorazioneVerbale, 
                 V71.Indirizzo, 
                 V71.Comune, 
                 V71.Cap, 
                 V71.Provincia, 
                 V71.Regione 
              from 
                 Verbale_Art71 as V71 
                    join Collaboratore as CO 
                       on V71.Codice_Tecnico = CO.Codice_Collaboratore 
              where 
                     V71.Data_Verbale >= '2014-01-01' 
                 and V71.Data_Verbale <= '2014-12-31' ) as VC 
         join 
         ( select 
                 S.Natura, 
                 S.Anno_Immatricolazione, 
                 S.Codice_Attribuzione_Matricola, 
                 S.Provincia_Immatricolazione, 
                 S.Numero_Matricola, 
                 S.idSpecifica, 
                 S.N_Panieri_Idroestrattori, 
                 S.Modello, 
                 S.Numero_Fabbrica, 
                 S.Anno_Costruzione, 
                 S.Sconto as ScontoAttr, 
                 S.Maggiorazione as MaggiorazioneAttr, 
                 P71.Tipo_Attr, 
                 S.Sede, 
                 S.idAttrezzatura 
              from 
                 Sollevamento as S 
                    join Periodicita_Art71 as P71 
                       on S.idPeriodicita = P71.idPeriodicita ) as SP 
            on VC.Sollevamento_idAttrezzatura = SP.idAttrezzatura
      ) as A 
      join 
      ( select 
              D.Ragione_Sociale, 
              D.Indirizzo, 
              D.Cap, 
              D.Comune, 
              D.Provincia, 
              D.Regione, 
              D.CF as CF_Ditta, 
              D.P_IVA, 
              SC.idSede 
           from 
              Ditta as D 
                 join Sede as SC 
                    on SC.Ditta = D.idDitta ) as SD 
      on ATTR71.Sede = SD.idSede

MySQL notifies that the syntax error is near as A join (select D.Ragione_Sociale, D.Indirizzo, D.Cap, D.Comune, D.Provincia

Anyone can help me find it? I've been looking for it since early morning and I'm going nuts. Thank anyone that will help me in advance, Giacomo


Solution

  • You are missing a select clause

    select A.*, SD.* 
    from 
        (/* You are missing a select * from here */
            (
                select ..
            ) as VC
            join
    

    Try with

    select A.*, SD.* 
    from 
        (select * from
            (
                select V71.Sollevamento_idAttrezzatura, V71.Num_id_ON,  V71.Affidato_INAIL, V71.Esito_Verifica, V71.Prima_Verifica, V71.Sospensione, V71.Data_Verbale, V71.Scadenza, CO.Nome, CO.Cognome, CO.CF, V71.Costo, V71.Sconto as ScontoVerbale, V71.Maggiorazione as MaggiorazioneVerbale, V71.Indirizzo, V71.Comune, V71.Cap, V71.Provincia, V71.Regione 
                from Verbale_Art71 as V71 
                join 
                Collaboratore as CO 
                    on V71.Codice_Tecnico = CO.Codice_Collaboratore 
                where V71.Data_Verbale >= '2014-01-01' and V71.Data_Verbale <= '2014-12-31'
            ) as VC 
            join 
            (
                select S.Natura, S.Anno_Immatricolazione, S.Codice_Attribuzione_Matricola, S.Provincia_Immatricolazione, S.Numero_Matricola, S.idSpecifica, S.N_Panieri_Idroestrattori, S.Modello, S.Numero_Fabbrica, S.Anno_Costruzione, S.Sconto as ScontoAttr, S.Maggiorazione as MaggiorazioneAttr, P71.Tipo_Attr, S.Sede, S.idAttrezzatura 
                from Sollevamento as S 
                join 
                Periodicita_Art71 as P71 
                    on S.idPeriodicita = P71.idPeriodicita
            ) as SP 
            on VC.Sollevamento_idAttrezzatura = SP.idAttrezzatura
        ) as A 
        join 
        (
            select D.Ragione_Sociale, D.Indirizzo, D.Cap, D.Comune, D.Provincia, D.Regione, D.CF as CF_Ditta, D.P_IVA, SC.idSede 
            from Ditta as D 
            join Sede as SC 
                on SC.Ditta = D.idDitta
        ) as SD 
            on ATTR71.Sede = SD.idSede