Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    query con left join, sum e group by

    Codice PHP:
    SELECT table1.datetable1.orderidtable1.productid,
    table1.totaletable1.price_1,
    table1.price_2table1.price_3table2.productcode
    sum
    (table1.price_1) as totale_price_1,sum(table1.price_2) as totale_price_2,
    sum(table1.price_3) as totale_price_3 
    FROM table1 LEFT JOIN table2 USING 
    (productidGROUP BY by table2.productcode
    cosa sbaglio?

    le due query separate mi funzionano senza problemi

    Codice PHP:
    select productidorderid,
    sum(price_1) as totale_price_1,
    sum(price_2) as totale_price_2,
    sum(price_3) as totale_price_3 
    from table2
    group by productid

    Codice PHP:
    SELECT table1.datetable1.orderidtable1.productid,
    table1.amounttable1.pricetable1.price_1,
    table1.price_2table1.price_3table2.productcode
    FROM table1 LEFT JOIN table2 USING 
    (productid); 
    non riesco a fonderle insieme
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  2. #2
    fonderle ... che vuol dire?

    ad una prima occhiata usi LEFT JOIN e raggruppi per table2 ... e quindi non e' detto che tu non abbia qualche NULL nella table2 che lascerebbe dietro dei valori di table1

    prova con INNER JOIN ...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Che differenza c'è fra productcode e productid?
    A logica, il group by dovrebbe rimanere sul productid della tabella 1...

  4. #4
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    ho risolto

    Codice PHP:
    SELECT orderidproductidprice_1price_2price_3table_2.productcode
    SUM(price_1) AS totale_price_1,
    SUM(price_2) AS totale_price_2,
    SUM(price_3) AS totale_price_3 
    FROM table_1 LEFT JOIN table_2 USING 
    (productid)
    GROUP BY table_2.productcode
    adesso ho un altra domanda, cosi mi fa la giusta somma...

    i risultati di questa query sono in questa forma

    id - productid - productcode - total_1- total_2 - total_3
    1---414----------stringa1----------4----------5-----------6
    2---444----------stringa2----------3----------1-----------2
    3---422----------stringa3----------4----------9-----------3
    4---434----------testo1------------5----------8-----------4
    5---454----------testo2------------6----------7-----------5
    6---474----------testo3------------5----------8-----------4
    7---484----------testo4------------6----------7-----------5

    ecco, io vorrei raggruppare tutti i totali per STRINGA (indipendentemente da stringa1, stringa2, stringa3)

    ottenere una cosa del genere

    productcode - total_1- total_2 - total_3
    stringa------------11-------15-----11 (somma totali prime tre righe)
    testo-------------12-------30------18 (somma totali ultime 4 righe)

    è possibile? Magari dovrei crearmi un array di "stringhe", e poi di volta in volta, passare una stringa come parametro..?


    PS: productid è un numero
    productcode è una stringa, e io voglio raggruppare per stringa (vedi sopra)
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  5. #5
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    [QUOTE]Originariamente inviato da blekm
    Codice PHP:
    SELECT orderidproductidprice_1price_2price_3table_2.productcode
    SUM(price_1) AS totale_price_1,
    SUM(price_2) AS totale_price_2,
    SUM(price_3) AS totale_price_3 
    FROM table_1 LEFT JOIN table_2 USING 
    (productidWHERE productcode LIKE '%stringa%'
    GROUP BY table_2.productcode
    adesso ho un altra domanda, cosi mi fa la giusta somma...

    i risultati di questa query sono in questa forma

    id - productid - productcode - total_1- total_2 - total_3
    1---414----------stringa1----------4----------5-----------6
    2---444----------stringa2----------3----------1-----------2
    3---422----------stringa3----------4----------9-----------3

    ecco, io vorrei raggruppare tutti i totali per STRINGA (indipendentemente da stringa1, stringa2, stringa3)

    ottenere una cosa del genere

    productcode - total_1- total_2 - total_3
    stringa--------------11-------15-----11 (somma totali prime tre righe)

    consigli?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  6. #6
    prova così

    SELECT
    orderid,
    productid,
    price_1,
    price_2,
    price_3,
    table_1.productcode,
    SUM(price_1) AS totale_price_1,
    SUM(price_2) AS totale_price_2,
    SUM(price_3) AS totale_price_3
    FROM table_1
    LEFT JOIN table_2 ON table_1.productid = table_2.productid
    WHERE
    table_1.productcode LIKE '%stringa%'
    GROUP BY
    table_1.productcode;
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  7. #7
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da webus
    prova così
    ci ero arrivato anch'io nel frattempo.. ma cosi ottengo questo

    d - productid - productcode - total_1- total_2 - total_3
    1---414----------stringa1----------4----------5-----------6
    2---444----------stringa2----------3----------1-----------2
    3---422----------stringa3----------4----------9-----------3

    e non

    productcode - total_1- total_2 - total_3
    stringa--------------11-------15-----11 (somma totali prime tre righe)


    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  8. #8
    ah, non avevo capito che stringa era... solo una stringa:

    SELECT
    'stringa',
    SUM(price_1) AS totale_price_1,
    SUM(price_2) AS totale_price_2,
    SUM(price_3) AS totale_price_3
    FROM table_1
    LEFT JOIN table_2 ON table_1.productid = table_2.productid
    WHERE
    table_1.productcode LIKE '%stringa%'
    GROUP BY stringa
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  9. #9
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da webus
    ah, non avevo capito che stringa era... solo una stringa:
    grandissimo!! funziona!!

    grazie mille..
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  10. #10
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da webus
    ah, non avevo capito che stringa era... solo una stringa:
    Codice PHP:
    SELECT 'stringa',
    SUM(price_1) AS totale_price_1,
    SUM(price_2) AS totale_price_2,
    SUM(price_3) AS totale_price_3
    FROM table_1
    LEFT JOIN table_2 ON table_1
    .productid table_2.productid
    WHERE
    table_1
    .productcode LIKE '%stringa%'
    GROUP BY stringa 
    potresti spiegarmi come funziona questa SELECT 'stringa' ... GROUP BY 'stringa'. Ho visto che funziona, ma non penso di aver capito il perchè e il come

    EDIT: inoltre, ho notato che se tolgo l'ultima riga, funziona lo stesso.. quindi posso anche toglierla, no?

    EDIT 2: altra domanda, ho diverse righe nel db, e per ogni riga ho una data. Come è possibile fare controlli anche sulla data? Cioè, posso usare la query sopra solo su quelle righe dove anno = 2006, o magari mese = gennaio && anno = 2007 && prodotto=stringa?

    O devo usare due query separate?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

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.