Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    tip, non ripete i nomi delle tabelle nelle select, fa' così
    codice:
    SELECT P.Nome, P.Cognome FROM Persone P
    più leggibile, no?

  2. #12
    Quote Originariamente inviata da optime Visualizza il messaggio
    tip, non ripete i nomi delle tabelle nelle select, fa' così
    codice:
    SELECT P.Nome, P.Cognome FROM Persone P
    più leggibile, no?
    O sbaglio io o manca molto :


    codice:
    SELECT MAX(numero_prodotti_sparati) AS numero_prodotti_sparati, MAX(quantita) as quantita FROM(
    SELECT `ddt_righe_sparate`.`id_prodotti`,
            count(ddt_righe_sparate.id_prodotti) as numero_prodotti_sparati,
            0 as quantita,
            prodotti.codice_articolo,
            prodotti.descrizione
    FROM `ddt_righe_sparate`
    JOIN prodotti on prodotti.id=ddt_righe_sparate.id_prodotti
    WHERE `ddt_righe_sparate`.`id_ddt` = 29
    AND `ddt_righe_sparate`.`deleted_at` IS NULL
    GROUP BY `ddt_righe_sparate`.`id_prodotti`,prodotti.codice_articolo,
            prodotti.descrizione
    UNION    
    
    
    SELECT `ddt_righe_inserite`.`id_prodotti`,
            0 as numero_prodotti_sparati,
            `ddt_righe_inserite`.`quantita`,
            prodotti.codice_articolo,
            prodotti.descrizione
    FROM `ddt_righe_inserite`
    JOIN prodotti on prodotti.id=ddt_righe_inserite.id_prodotti
    WHERE `ddt_righe_inserite`.`id_ddt` = 29
    AND `ddt_righe_inserite`.`deleted_at` IS NULL
    ) as result
    Primo ho una sola riga mentre le 3 che mi aspetto questa la union :

    id_prodotti numero_prodotti_sparati quantita
    3742 1 0
    11 1 0
    3742 0 1

    questo il risultato totale :

    numero_prodotti_sparati quantita
    1 1

    Invece mi aspetto due righe
    id_prodotti numero_prodotti_sparati quantita
    3742 1 1
    11 1 0

    p.s. avevo provato a mettere gli screenshot ma non si vedono
    Ultima modifica di pippuccio76; 08-04-2024 a 01:55

  3. #13
    ci sei quasi. La query di esempio prevedeva una sola riga; nel tuo caso, avendone più d'una, dovrai aggiungere alla query "esterna":
    - l'id e la descrizione del prodotto all'elenco delle colonne estratte
    - una GROUP BY sempre per id e descrizione

    prova e facce sape'

  4. #14
    Quote Originariamente inviata da optime Visualizza il messaggio
    ci sei quasi. La query di esempio prevedeva una sola riga; nel tuo caso, avendone più d'una, dovrai aggiungere alla query "esterna":
    - l'id e la descrizione del prodotto all'elenco delle colonne estratte
    - una GROUP BY sempre per id e descrizione

    prova e facce sape'

    eccola, ho tolto le join dalle due interne e fatta fuori , funziona :

    codice:
                      SELECT MAX(numero_prodotti_sparati) AS numero_prodotti_sparati, MAX(quantita) as quantita,id_prodotti,prodotti.descrizione,prodotti.codice_articolo FROM(
                      SELECT `ddt_righe_sparate`.`id_prodotti`,
                              count(ddt_righe_sparate.id_prodotti) as numero_prodotti_sparati,
                              0 as quantita
                      FROM `ddt_righe_sparate`
                      WHERE `ddt_righe_sparate`.`id_ddt` = '.$id_ddt.'
                      AND `ddt_righe_sparate`.`deleted_at` IS NULL
                      GROUP BY `ddt_righe_sparate`.`id_prodotti`
                      UNION    
    
    
    
    
                      SELECT `ddt_righe_inserite`.`id_prodotti`,
                              0 as numero_prodotti_sparati,
                              `ddt_righe_inserite`.`quantita`
    
    
                      FROM `ddt_righe_inserite`
                      JOIN prodotti on prodotti.id=ddt_righe_inserite.id_prodotti
                      WHERE `ddt_righe_inserite`.`id_ddt` = '.$id_ddt.'
                      AND `ddt_righe_inserite`.`deleted_at` IS NULL
                      ) as result
                      join prodotti on result.id_prodotti=prodotti.id
                      group by id_prodotti,descrizione,codice_articolo

  5. #15
    bravo pippuccio76

    gli ho solo dato una ripulita

    codice:
    SELECT 
    	MAX(R.numero_prodotti_sparati) AS numero_prodotti_sparati, 
    	MAX(R.quantita) as quantita, 
    	R.id_prodotti, 
    	P.descrizione, 
    	P.codice_articolo 
    FROM(
    	SELECT 
    		id_prodotti,
    		count(id_prodotti) as numero_prodotti_sparati,
            0 as quantita
    	FROM ddt_righe_sparate
    	WHERE id_ddt = '.$id_ddt.'
    		AND deleted_at IS NULL
    	GROUP BY id_prodotti
                      
    	UNION
    	SELECT 
    		id_prodotti,
    		0 as numero_prodotti_sparati,
    		quantita
    	FROM ddt_righe_inserite
    	WHERE id_ddt = '.$id_ddt.'
    		AND deleted_at IS NULL
    	) AS result R
    	JOIN prodotti P on R.id_prodotti=P.id
    	GROUP BY R.id_prodotti, P.descrizione, P.codice_articolo
    facce sape'

  6. #16
    Utente bannato
    Registrato dal
    Apr 2024
    Messaggi
    4
    .

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 © 2024 vBulletin Solutions, Inc. All rights reserved.