Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    41

    my sql..problema con count multipla

    Buongiorno a tutti
    ho un ennesimo intoppo con una query che deve eseguire una doppia count da 2 tabelle

    io mi ritrovo queste 3 tabelle

    trequest

    IDRequest DescriptionProject
    1 Pippo
    2 Pippo
    3 Pippo
    4 Pluto
    5 Pluto

    tticket

    IDTicket IDRequest
    1 1
    2 2
    3 3
    4 4
    5 5

    tactivity

    IDActivity IDTicket
    1 4
    2 5
    3 1
    4 2
    5 3

    qui la mia query

    select COUNT( trequest.IDRequest) ,
    trequest.DescriptionProject,
    COUNT( tactivity.IDActivity)
    from trequest
    left Join tticket ON trequest.IDRequest= tticket.IDRequest
    left join tactivity ON tticket.IDTicket= tactivity.IDTicket
    where trequest.DescriptionProject = 'Pippo' and tactivity.IDActivity>2
    group by DescriptionProject


    Il mio problema è che teoricamente mi dovrebbe dare

    Pippo 3 e 2

    ma invece mi da Pippo 2 e 2 , ovvero mi da solamente quelle in join (presumo) perdendosi la terza..

    ps l uso dell idactivity>2 è necessario... ed è questo che mi crea conflitto!!

    sapete dirmi dove sbaglio?
    grazie


  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: my sql..problema con count multipla

    Originariamente inviato da yirion
    Buongiorno a tutti
    ho un ennesimo intoppo con una query che deve eseguire una doppia count da 2 tabelle

    io mi ritrovo queste 3 tabelle

    trequest

    IDRequest DescriptionProject
    1 Pippo
    2 Pippo
    3 Pippo
    4 Pluto
    5 Pluto

    tticket

    IDTicket IDRequest
    1 1
    2 2
    3 3
    4 4
    5 5

    tactivity

    IDActivity IDTicket
    1 4
    2 5
    3 1
    4 2
    5 3

    qui la mia query

    select COUNT( trequest.IDRequest) ,
    trequest.DescriptionProject,
    COUNT( tactivity.IDActivity)
    from trequest
    left Join tticket ON trequest.IDRequest= tticket.IDRequest
    left join tactivity ON tticket.IDTicket= tactivity.IDTicket
    where trequest.DescriptionProject = 'Pippo' and tactivity.IDActivity>2
    group by DescriptionProject


    Il mio problema è che teoricamente mi dovrebbe dare

    Pippo 3 e 2

    ma invece mi da Pippo 2 e 2 , ovvero mi da solamente quelle in join (presumo) perdendosi la terza..

    ps l uso dell idactivity>2 è necessario... ed è questo che mi crea conflitto!!

    sapete dirmi dove sbaglio?
    grazie

    E' normale che ti dia lo stesso numero, la count è legata alla group by. Se il criterio di conteggio è per descrizione il risultato sarà analogo. Devi sostituire le count come subquery all'interno della lista campi della SELECT

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.