Por que mi select count... no hace left join?

21/11/2007 - 16:49 por gandy | Informe spam
hola tengo un problema con la mia sentencia sql!
cuando ejecuto la consulta no me hace el left join, por que ?
que puedo hacer para que me pinte todos los campos n_carro de la tabla
d_carros? existan en la select count

SELECT dbo.d_carros.n_carro, COUNT(dbo.colate.tempo) AS PIEZAS
FROM dbo.d_carros LEFT OUTER JOIN
dbo.colate ON dbo.colate.cod_porta_stampo =
dbo.d_carros.n_carro
WHERE (dbo.colate.tempo BETWEEN '16/11/2007 07:00:00' AND '16/11/2007
08:00:00') AND (dbo.colate.num_carosello = '2')
GROUP BY dbo.d_carros.n_carro
ORDER BY dbo.d_carros.n_carro

n_carro PIEZAS
1 10
2 12
4 10
5 12
6 14
8 12
9 12
10 8
11 10
12 12
13 10

(11 filas afectadas)

- Esta es la tabla d_carros, este es el contenido de la tabla, no hay
más en ella
n_carro d_carro o_carro
1 RD B-58 CONF Nv6 12
2 RD B-58 CONF Nv2 12
3 RD B-58 EXCLUSIF Nv3 12
4 RD B-58 CONF Nv2 12
5 RD B-58 CONF 12
6 RD B-58 CONF Nv2 12
7 RD B-58 CONF Nv1 12
8 RD B-58 CONF Nv2 12
9 RD B-58 CONF Nv2 12
10 RD B-58 EXCLUSIF Nv3 12
11 RD B-58 EXCLUSIF Nv3 12
12 RD B-58 EXCLUSIF Nv1 12
13 RD B-58 CONF Nv2 12


- Esta es la tabla colate no estan todos los campos por que
son sobre 65 campos
tempo cod_porta_stampo
num_carosello
-
-
2007-09-01 03:06:14.000 12 1
2007-09-01 03:06:14.000 12 1
2007-09-01 03:07:34.000 11 1
2007-09-01 03:07:34.000 11 1
2007-09-01 03:08:16.000 2 1
2007-09-01 03:08:16.000 2 1
2007-09-01 03:08:57.000 8 1
2007-09-01 03:08:57.000 8 1
2007-05-07 16:39:41.000 7 2
2007-05-07 16:40:28.000 5 2
2007-05-07 16:40:28.000 5 2
2007-05-07 16:41:07.000 11 2
2007-05-07 16:41:07.000 11 2
2007-05-07 16:41:53.000 10 2
2007-05-07 16:41:53.000 10 2
2007-05-07 16:42:32.000 1 2
2007-05-07 16:42:32.000 1 2
2007-05-07 16:42:59.000 12 2
2007-05-07 16:42:59.000 12 2
2007-05-07 16:43:41.000 9 2
2007-05-07 16:43:41.000
 

Leer las respuestas

#1 Diego Romero
21/11/2007 - 17:56 | Informe spam
Si incluye un campo de la tabla derecha de la relación LEFT JOIN (
dbo.colate) , como condición WHERE , la consulta devuelve solamente
las filas que cumplan la condición, las filas no existentes en dbo.colate
están en nulo.

WHERE (dbo.colate.tempo BETWEEN '16/11/2007 07:00:00' AND '16/11/2007
08:00:00') AND (dbo.colate.num_carosello = '2')




Podría ser:

WHERE ( (dbo.colate.tempo BETWEEN '16/11/2007 07:00:00' AND '16/11/2007
08:00:00') OR dbo.colate.tempo IS NULL)
AND (dbo.colate.num_carosello = '2' OR dbo.colate.num_carosello IS NULL)




Diego M Romero

"gandy" escribió en el mensaje
news:
hola tengo un problema con la mia sentencia sql!
cuando ejecuto la consulta no me hace el left join, por que ?
que puedo hacer para que me pinte todos los campos n_carro de la tabla
d_carros? existan en la select count

SELECT dbo.d_carros.n_carro, COUNT(dbo.colate.tempo) AS PIEZAS
FROM dbo.d_carros LEFT OUTER JOIN
dbo.colate ON dbo.colate.cod_porta_stampo > dbo.d_carros.n_carro
WHERE (dbo.colate.tempo BETWEEN '16/11/2007 07:00:00' AND '16/11/2007
08:00:00') AND (dbo.colate.num_carosello = '2')
GROUP BY dbo.d_carros.n_carro
ORDER BY dbo.d_carros.n_carro

n_carro PIEZAS
1 10
2 12
4 10
5 12
6 14
8 12
9 12
10 8
11 10
12 12
13 10

(11 filas afectadas)

- Esta es la tabla d_carros, este es el contenido de la tabla, no
hay
más en ella
n_carro d_carro o_carro
1 RD B-58 CONF Nv6 12
2 RD B-58 CONF Nv2 12
3 RD B-58 EXCLUSIF Nv3 12
4 RD B-58 CONF Nv2 12
5 RD B-58 CONF 12
6 RD B-58 CONF Nv2 12
7 RD B-58 CONF Nv1 12
8 RD B-58 CONF Nv2 12
9 RD B-58 CONF Nv2 12
10 RD B-58 EXCLUSIF Nv3 12
11 RD B-58 EXCLUSIF Nv3 12
12 RD B-58 EXCLUSIF Nv1 12
13 RD B-58 CONF Nv2 12


- Esta es la tabla colate no estan todos los campos por
que
son sobre 65 campos
tempo cod_porta_stampo
num_carosello
-
-
2007-09-01 03:06:14.000 12 1
2007-09-01 03:06:14.000 12 1
2007-09-01 03:07:34.000 11 1
2007-09-01 03:07:34.000 11 1
2007-09-01 03:08:16.000 2 1
2007-09-01 03:08:16.000 2 1
2007-09-01 03:08:57.000 8 1
2007-09-01 03:08:57.000 8 1
2007-05-07 16:39:41.000 7 2
2007-05-07 16:40:28.000 5 2
2007-05-07 16:40:28.000 5 2
2007-05-07 16:41:07.000 11 2
2007-05-07 16:41:07.000 11 2
2007-05-07 16:41:53.000 10 2
2007-05-07 16:41:53.000 10 2
2007-05-07 16:42:32.000 1 2
2007-05-07 16:42:32.000 1 2
2007-05-07 16:42:59.000 12 2
2007-05-07 16:42:59.000 12 2
2007-05-07 16:43:41.000 9 2
2007-05-07 16:43:41.000

Preguntas similares