Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [MySQL] SUM su LEFT JOIN

    salve ho questa query che funziona in modo strano, cioè se tolgo il SUM mi restituisce 0 righe (che è il risultato corretto della query) se inviece inserisco SUM sulla giacenza, mi da come risultato una riga vuota con tutti NULL...

    SELECT ArchivioTotale.codice, ArchivioTotale.tit_ope, ArchivioTotale.aut_001, ArchivioTotale.des_edi, ArchivioTotale.pre_ven, Vetrina.sconto, Vetrina.pre_sco, SUM(Giacenze.qta_gia) AS giacenza, MATCH ( ArchivioTotale.aut_001, ArchivioTotale.tit_ope, ArchivioTotale.des_edi ) AGAINST ( '+valore1 +valore2' IN BOOLEAN MODE ) AS attinenza

    FROM 0_titoli_varia AS ArchivioTotale

    LEFT JOIN ilpapiro_titoli AS ArchivioCliente ON ArchivioTotale.codice = ArchivioCliente.codice
    LEFT JOIN ilpapiro_vetrina AS Vetrina ON ArchivioTotale.codice = Vetrina.codice
    LEFT JOIN ilpapiro_giacenze AS Giacenze ON ArchivioTotale.codice = Giacenze.cod_gia

    WHERE MATCH ( ArchivioTotale.aut_001, ArchivioTotale.tit_ope, ArchivioTotale.des_edi ) AGAINST ( '+valore1 +valore2' IN BOOLEAN MODE ) AND ( ( ArchivioCliente.codice IS NULL ) )

  2. #2
    forse è meglio scritta così


    SELECT ArchivioTotale.codice, ArchivioTotale.tit_ope, ArchivioTotale.aut_001, ArchivioTotale.des_edi, ArchivioTotale.pre_ven, Vetrina.sconto, Vetrina.pre_sco, SUM(Giacenze.qta_gia) AS giacenza,
    MATCH (
    ArchivioTotale.aut_001, ArchivioTotale.tit_ope, ArchivioTotale.des_edi
    )
    AGAINST (
    '+valore1 +valore2'
    IN BOOLEAN
    MODE
    ) AS attinenza
    FROM 0_titoli_varia AS ArchivioTotale
    LEFT JOIN ilpapiro_titoli AS ArchivioCliente ON ArchivioTotale.codice = ArchivioCliente.codice
    LEFT JOIN ilpapiro_vetrina AS Vetrina ON ArchivioTotale.codice = Vetrina.codice
    LEFT JOIN ilpapiro_giacenze AS Giacenze ON ArchivioTotale.codice = Giacenze.cod_gia
    WHERE MATCH (
    ArchivioTotale.aut_001, ArchivioTotale.tit_ope, ArchivioTotale.des_edi
    )
    AGAINST (
    '+valore1 +valore2'
    IN BOOLEAN
    MODE
    )
    AND (
    (
    ArchivioCliente.codice IS NULL
    )
    )

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Mi sembra perfettamente normale che sia così.
    Se non vuoi visualizzare il record aggiungi alla fine della query la clausola

    having sum(Giacenze.qta_gia) is not null

  4. #4
    il problema è che la QUERY vorrei che mi restituisse tutti i record (da qui la LEFT JOIN sulle giacenze) anche quelli che nn sono presenti in Giacenze invece se metto il SUM in qualsiasi caso me li aggrega in una sola riga, se invece tolgo il SUM funziona perfettamente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.