sono riuscito a fare questa (lo so, i nomi sono lunghi, ma le faccio con
l'editor visuale):
SELECT DISTINCT
qo_risposta_testo."id_risposta" AS qo_risposta_testo_id_risposta,
qo_domanda_risposta."id_domanda" AS qo_domanda_risposta_id_domanda,
qo_questionario_risposta."id_domanda" AS
qo_questionario_risposta_id_domanda
FROM
"public"."qo_risposta_testo" qo_risposta_testo
LEFT OUTER JOIN
"public"."qo_questionario_risposta" qo_questionario_risposta
ON
qo_risposta_testo."id_risposta" = qo_questionario_risposta."id_risposta"
LEFT OUTER JOIN
"public"."qo_domanda_risposta" qo_domanda_risposta
ON
qo_risposta_testo."id_risposta" = qo_domanda_risposta."id_risposta",
"public"."qo_modulo_domanda" qo_modulo_domanda
INNER JOIN
"public"."qo_questionario_modulo" qo_questionario_modulo
ON
qo_modulo_domanda."id_modulo" = qo_questionario_modulo."id_modulo"
WHERE
qo_questionario_modulo."id_questionario" = 1
and
(
qo_domanda_risposta."id_domanda" in
(
SELECT
qo_modulo_domanda."id_domanda" AS qo_modulo_domanda_id_domanda
FROM
"public"."qo_modulo_domanda" qo_modulo_domanda
INNER JOIN
"public"."qo_questionario_modulo" qo_questionario_modulo
ON
qo_modulo_domanda."id_modulo" =
qo_questionario_modulo."id_modulo"
WHERE
qo_questionario_modulo."id_questionario" = 1
)
or qo_questionario_risposta."id_domanda" in
(
SELECT
qo_modulo_domanda."id_domanda" AS qo_modulo_domanda_id_domanda
FROM
"public"."qo_modulo_domanda" qo_modulo_domanda
INNER JOIN
"public"."qo_questionario_modulo" qo_questionario_modulo
ON
qo_modulo_domanda."id_modulo" =
qo_questionario_modulo."id_modulo"
WHERE
qo_questionario_modulo."id_questionario" = 1
)
)
praticamente da in output:
0 (null) 1
0 (null) 3
1 1 1
2 1 1
3 1 (null)
4 1 (null)
5 1 (null)
6 2 (null)
7 2 2
8 2 2
9 2 (null)
10 2 (null)
19 (null) 3
c'è un modo per fondere le seconde 2 colonne in modo da avere in totale 2
colonne ?
praticamente verrebbe:
0 1
0 3
1 1
2 1
3 1
4 1
5 1
6 2
7 2
8 2
9 2
10 2
19 3
è possibile?
Il 01/11/07, bako <bakosoft@xxxxxxxx> ha scritto:
Ciao, ho provato ma nn va.
ai messo questionario_modulo m e poi m.id_domanda, solo che
questionario_modulo non ha id_domanda.
( http://img161.imageshack.us/img161/3152/querytutterispostesp1.jpg ;)
SE LECT
d.testo AS domanda,
r.testo AS risposta,
count(rb.id_risposta)
FROM
qo_modulo_domanda d
INNER JOIN qo_questionario_modulo m ON d.id_modulo =
m.id_modulo
INNER JOIN qo_questionario_risposta r ON m.id_domanda =
r.id_domanda
INNER JOIN qo_domanda_testo d ON r.id_domanda = d.id_domanda
LEFT JOIN qo_risposta_testo rb ON r.id_risposta =
rb.id_risposta
WHERE
m.id_questionario = 1
AND (d.id_lingua = 1
or d.id_lingua = 0)
GROUP BY d.testo, r.testo
--
Stefano
--
Stefano