vendredi 5 juin 2015

Tree query result complex

I have this condition:

tb_product

    id  nome    
    "1" "prod1" "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:48:12"
    "2" "prod2" "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:48:17"
    "3" "prod3" "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:48:21"

tb_cp

    id   nome
    "1" "cp1"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:42:36"
    "2" "cp2"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:42:40"

tb_store

    id   cp_store  location  nome  qta  data_in                data_out
    "1" "cp1"   "0.0"   "prod1" "1.0"   "2015-06-05 06:48:37"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:48:41"
    "2" "cp1"   "4.0"   "prod1" "1.0"   "2015-06-05 06:49:02"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:49:06"
    "3" "cp1"   "1.0"   "prod2" "1.0"   "2015-06-05 06:49:09"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 06:49:13"
    "4" "cp1"   "12.0"  "prod1" "1.0"   "2015-06-05 07:05:05"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 07:05:10"
    "5" "cp1"   "8.0"   "prod1" "1.0"   "2015-06-05 07:36:52"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 07:36:57"
    "6" "cp2"   "0.0"   "prod1" "1.0"   "2015-06-05 09:28:06"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 09:28:18"
    "7" "cp2"   "20.0"  "prod2" "1.0"   "2015-06-05 09:45:34"   "2015-06-05 09:46:18"   "NULL"  "NULL"  "NULL"  "NULL"  "NULL"  "2015-06-05 09:46:18"

and I have created this query:

SELECT DISTINCT nome, pezzi, cp_store FROM(
                SELECT nome,COALESCE(pezzi,0)as pezzi,cp_store FROM(
                SELECT p.nome, COUNT(s.nome) as pezzi,cp_store
                FROM tb_product as p LEFT JOIN tb_store as s
                ON   p.nome = s.nome
                WHERE s.data_out is null OR s.data_out = "" 
                GROUP BY p.nome
                union
                select nome,null as pezzi,null as cp_store from tb_product) where cp_store='cp1' GROUP BY nome )
                ORDER BY pezzi DESC

but the result are:

nome    pezzi    cp_store
"prod2" "1" "cp1"

and if i set cp2 in the query, obtain this result:

nome    pezzi    cp_store
"prod1" "5" "cp2"

I looking ht error but I dont't find it...I would like to obtain, if I set cp1, this result:

 nome    pezzi    cp_store
"prod1" "4" "cp1"
"prod2" "1" "cp1"
"prod3" "0" 

Aucun commentaire:

Enregistrer un commentaire