Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    17

    MYSQL - estrarre record da 2 tabelle per grafico giorni mese

    Salve a tutti,

    ho problemi ad estrarre dei record da due tabelle una contenente tutti i giorni del mese l'altra contenente solo i record dei giorni archiviati e relativi altri dati.

    vorrei estrarli per poter creare un grafico a barre del mese giorno per giorno quindi ad esempio febbraio dal giorno 1 al giorno 28.

    il problema nasce dal fatto che non ho tutti i record dei giorni ma solo quelli dove i dati sono registrati, quindi avrò i giorni 3,4,6,12 etc..

    ma per il grafico del mese ho bisogno di far visualizzare anche i giorni 1,2,7,8,9,10,11,13 etc.. con valore 0 dato che non ho record registrati.

    le tabelle sono le seguenti:

    1 calandar > dayz (date)
    2 posizion > dateof (datetime), totsell (decimal)


    qualche santo può cortesemente venirmi in soccorso?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Mi sembra una left join (calandar sta a sinistra) applicando ai campi in output la conversione da null a 0 (ISNULL o IFNULL, a seconda del “dialetto” sql che devi usare)

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    17
    ho provato cosi:
    codice:
     SELECT t1.timeof,t1.totsell,t1.cost,t2.dayz FROM POSITION t1 LEFT JOIN calendar t2 ON (DATE_FORMAT(t1.timeof, '%m-%Y') = DATE_FORMAT(t2.dayz, '%m-%Y')) WHERE t2.dayz BETWEEN DATE_FORMAT('2021-02-01', '%Y-%m-%d') AND DATE_FORMAT('2021-03-01', '%Y-%m-%d') AND t1.ACTIVE = '3' AND t1.usern='AMON' GROUP BY DATE_FORMAT(t1.timeof, '%Y-%m-%d') ORDER BY t1.timeof ASC
    ma il risultato è questo...
    il campo dayz non segue il campo timeof

    Screenshot_18.jpg

  4. #4
    mmmm vedo che la JOIN è su mese/anno perché ometti il giorno? (PS: formatta un po' meglio la query quando posti, che si fa fatica a leggerla... grazie)

  5. #5
    poi, in una left join la tabella che ha tutto (quindi calendar) va a sinistra

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    17
    qui ho messo tutto https://sqltest.net/#1251445

    praticamente avrei bisogno che ci sia un conteggio (sottrazione) per giorno tra totsell e cost (totsell-cost) e dove non ho record su timeof come risultato della sottrazione venga fuori 0...

    esempio:



    codice:
    timeoff              days   sum (totsell-cost)
    2021-02-01     2021-02-01    valore
    2021-02-02     2021-02-02    valore
    null           2021-02-03      0
    2021-02-04    2021-02-04    valore
    null           2021-02-05      0
    2021-02-04     2021-02-06   valore


    praticamente dove non ho il record sulla tabella pos deve restituire 0 come valore in modo che sul grafico ridia per il giorno un valore 0
    Ultima modifica di AMONRA75; 22-03-2021 a 16:29

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    poi, in una left join la tabella che ha tutto (quindi calendar) va a sinistra
    ripeto

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    17
    scusami sono un novello potresti farmi un esempio?

  9. #9
    tu hai scritto

    codice:
    SELECT t1.timeof,t1.totsell,t1.cost,t2.dayz FROM pos t1 left JOIN calendar t2 ON (DATE_FORMAT(t1.timeof, '%d-%m-%Y') = DATE_FORMAT(t2.dayz, '%d-%m-%Y'));
    pos è a sinistra, calendar è a destra della clausola LEFT JOIN ; questo vuol dire che prende TUTTO pos, e quello che corrisponde di calendar

    tu vuoi invece che prenda TUTTO di calendar, e quello che corrisponde di pos, vero?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    17
    si però i record che visualizzo sono sempre identici le date del calendar e quelle del pos sono uguali e non deve essere cosi. sono bloccato alal grande

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.