Errore 1064 - RISOLTO

di il
4 risposte

Errore 1064 - RISOLTO

Buongiorno,

ho creato la seguente query con subquery, singolarmente funzionano tutte perfettamente, ma unendole continua a darmi Errore 1064 alla riga 20

SELECT
   `tblformaggioentrata`.`IDFormaggio`
   , `tblformaggi`.`Nome Formaggio`
   , `tblformaggioentrata`.`Data`
   , `tblformaggioentrata`.`Lotto`
   , `tblformaggioentrata`.`Forme`
   , `tblformaggioentrata`.`Note`
   , `qryuscitetotali`.`Lotto`
   , `qryuscitetotali`.`SommadiForme`
FROM    
(SELECT `IDFormaggio`, `Lotto`, `IDFormEntrata`, SUM(forme) AS SommadiForme
FROM (SELECT tblformaggiuscita.`Data`
,tblformaggiuscita.`IDFormaggio`
,tblformaggiuscita.`Lotto`
,tblformaggiuscita.`Forme`
,tblformaggiuscita.`IdFormEntrata`
FROM tblformaggiuscita
WHERE tblformaggiuscita.`Data` BETWEEN '2025-01-01' AND '2025-01-31') AS qryuscite
GROUP BY idformaggio, lotto, idfromentrata) AS qryuscitetotali
FROM
   `tblformaggioentrata`
   INNER JOIN `tblformaggi` 
       ON (`tblformaggioentrata`.`IDFormaggio` = `tblformaggi`.`IDFormaggio`)
WHERE (`tblformaggioentrata`.`Data` BETWEEN '2025-01-01' AND '2025-01-31') 
GROUP BY `tblformaggioentrata`.`IDFormaggio`, `tblformaggioentrata`.`Data`, `tblformaggioentrata`.`Lotto`, `tblformaggioentrata`.`Note`, `tblformaggi`.`Nome Formaggio`
ORDER BY tblformaggi.`Nome Formaggio`

sono sicuro che mi sta sfuggendo qualcosa, ma non riesco a venirne a capo!

4 Risposte

  • Re: Errore 1064 - RISOLTO

    Ciao,

    ci sono errori di sintassi e di struttura..., verifica bene 

  • Re: Errore 1064 - RISOLTO

    Sono proprio quelli che mi stanno sfuggendo!!!

    Ho provato a riscrivere tutto da zero e mi blocco sempre a quel

    FROM
       `tblformaggioentrata`
       INNER JOIN `tblformaggi` 
           ON (`tblformaggioentrata`.`IDFormaggio` = `tblformaggi`.`IDFormaggio`)

  • Re: Errore 1064 - RISOLTO

    Ti faccio un esempio 

    Poniamo di avere una Tabella con le testate ordini clienti

    e una Tabella con le righe ordine 

    le condizioni:

    • Filtra i records per un periodo dalla data alla data
    • Unisci le testate con le righe ordini per Id Ordine
    • con la sottoquery conta le righe degli ordini
    • restituire le fields:
      • IDOrdine
      • IDCliente
      • DataOrdine
      • CodiceArticolo
      • Quantità
      • NumeroRighe

    .
    più o meno, se non ho scritto male, dovresti fare una cosa di questo tipo:

    SELECT 
        o.IDOrdine, 
        o.IDCliente, 
        o.DataOrdine, 
        r.CodiceArticolo, 
        r.Quantità,
        (SELECT COUNT(*) 
         FROM RigheOrdine r2 
         WHERE r2.IDOrdine = o.IDOrdine) AS NumeroRighe
    FROM Ordini o
    INNER JOIN RigheOrdine r ON o.IDOrdine = r.IDOrdine
    WHERE o.DataOrdine BETWEEN '2024-01-01' AND '2024-01-31'
    ORDER BY o.IDOrdine;
    

    Nota: per semplificare la rilettura e la scrittura, in questo esempio, viene usato un alias per le due tabelle : "o" per Ordini e "r" per RigheOrdini e "r2" per la sottoquery che esegue il conteggio righe dell'ordine

  • Re: Errore 1064 - RISOLTO

    Grazie, ho risolto!

Devi accedere o registrarti per scrivere nel forum
4 risposte