Visualizzazione dei risultati da 1 a 9 su 9

Discussione: query singola

  1. #1

    query singola

    ciao a tutti! devo inserire in una tabella dei dati divisi per trimestre ed il totale annuo... l'unica soluzione mi sembra fare 5 query, una per periodo... ma la cosa mi sembra pesante... come posso fare? vi ringrazio! ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao

    ad occhio mi sembra non ci siano elementi suffiecienti per poterti rispondere....

    prova almeno a postare la struttura della tabella in cui sono memorizzati i dati

  3. #3
    le tabelle sono varie... sostanzialmente io con un select mi trovo la lista degli importi (ma penso che la natura del dato non sia rilevante, una lista di numeri) filtrati per anno, ad esempio: 12000 - 12/05/1999 ecc.... le condizioni di filtro nel where sono obbligatoriamente su tutti i campi del select oppure si può distinguere?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    si, si puo' distinguere.

    posta la query... hai provato con group by?

  5. #5
    SELECT DISTINCT sum(rows.importo) AS importo, aziende.name AS azienda
    FROM ricezioni AS ric JOIN ricezioni_rows
    AS rows on ric.id = rows.parent_id JOIN accounts AS aziende on aziende.id = ric.account_id
    WHERE aziende.account_gx >= 270210231 AND aziende.account_gx <= 270210231 AND ric.data_ricez >= '2000-01-01'
    AND ric.data_ricez <= '2000-12-31' GROUP BY aziende.name

    in questo caso, come si vede, ho diviso per totale anno...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    allora.... io 'proverei' utilizzando il comando CASE,

    codice:
    SELECT DISTINCT 
    sum(rows.importo) AS importo, 
    aziende.name AS azienda,
    CASE ric.data_ricez
      WHEN mese<=3 THEN 1
      WHEN mese<=6 THEN 2
      WHEN mese<=9 THEN 3
      WHEN mese<=12 THEN 4
      ELSE 5
      END Trimestre
    FROM ricezioni AS ric 
    ...
    devi aggiustare il controllo del mese della data.....
    se ti riesce credo che con questa tecnioca potresti avere i dati gia' divisi per trimestre

  7. #7
    ti ringrazio tanto. ora provo subito!

  8. #8
    ma come posso fare per vedere le casistiche in output?

    ora come ora la query è:

    SELECT DISTINCT sum(rows.acq_qta_fatt) AS fatturato, aziende.name AS nome, ric.data_ricez=
    CASE
    WHEN ric.data_ricez < '2000-03-31' THEN 1
    ELSE 2
    END
    FROM ricezioni AS ric JOIN ricezioni_rows
    AS rows on ric.id = rows.parent_id JOIN accounts AS aziende on aziende.id = ric.account_id
    LEFT JOIN obbiettivi_acquisto AS obiettivi ON obiettivi.s_conto_for = aziende.account_gx
    WHERE aziende.account_gx >= 270210231 AND aziende.account_gx <= 270210231 AND ric.data_ricez >= '2000-01-01'
    AND ric.data_ricez <= '2000-12-31' GROUP BY aziende.name, ric.data_ricez

    devo inserire i casi 1 e 2 da qualche parte?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    mi spieghi cosa significa questo:
    aziende.account_gx >= 270210231 AND aziende.account_gx <= 270210231
    ???

    codice:
    SELECT DISTINCT 
    sum(rows.acq_qta_fatt) AS fatturato, 
    aziende.name AS nome, 
    CASE
    WHEN ric.data_ricez < '2000-03-31' THEN 1
    WHEN ric.data_ricez < '2000-06-30' THEN 2
    WHEN ric.data_ricez < '2000-09-30' THEN 3
    WHEN ric.data_ricez < '2000-12-31' THEN 4
    ELSE 5
    END as trimestre
    FROM ricezioni AS ric 
    LEFT JOIN ricezioni_rows AS rows on ric.id = rows.parent_id 
    LEFT JOIN accounts AS aziende on aziende.id = ric.account_id
    LEFT JOIN obbiettivi_acquisto AS obiettivi ON obiettivi.s_conto_for = aziende.account_gx
    WHERE 
    aziende.account_gx >= 270210231 AND 
    aziende.account_gx <= 270210231 AND 
    ric.data_ricez >= '2000-01-01' AND 
    ric.data_ricez <= '2000-12-31' 
    GROUP BY aziende.name, ric.data_ricez, trimestre

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.