Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
".....Peux être a t-u des paramètres serveur modifié notamment sur les
comparaison avec null....."
Je viens de faire le test
-1) les données de ma table
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
(5 ligne(s) affectée(s))
-2) création de la table temp
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
donne,
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
1 NULL 110 60
2 f 5 6
2 r 5 8
2 NULL 10 14
3 t 10 7
3 NULL 10 7
NULL NULL 130 81
NULL a 100 50
NULL e 10 10
NULL f 5 6
NULL r 5 8
NULL t 10 7
(14 ligne(s) affectée(s))
et enfin
la clause where :
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
1 NULL 110 60
2 f 5 6
2 r 5 8
2 NULL 10 14
3 t 10 7
3 NULL 10 7
NULL NULL 130 81
(9 ligne(s) affectée(s))
et j'obtiens la ligne null null 130 81,
pour info je suis en SQL SERVER 2000 sp3a
Peux être a t-u des paramètres serveur modifié notamment sur les
comparaison
avec null.
"David" a écrit :Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour
chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== >> 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== >> 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== >> 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
".....Peux être a t-u des paramètres serveur modifié notamment sur les
comparaison avec null....."
Je viens de faire le test
-1) les données de ma table
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
(5 ligne(s) affectée(s))
-2) création de la table temp
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
donne,
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
1 NULL 110 60
2 f 5 6
2 r 5 8
2 NULL 10 14
3 t 10 7
3 NULL 10 7
NULL NULL 130 81
NULL a 100 50
NULL e 10 10
NULL f 5 6
NULL r 5 8
NULL t 10 7
(14 ligne(s) affectée(s))
et enfin
la clause where :
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
1 NULL 110 60
2 f 5 6
2 r 5 8
2 NULL 10 14
3 t 10 7
3 NULL 10 7
NULL NULL 130 81
(9 ligne(s) affectée(s))
et j'obtiens la ligne null null 130 81,
pour info je suis en SQL SERVER 2000 sp3a
Peux être a t-u des paramètres serveur modifié notamment sur les
comparaison
avec null.
"David" a écrit :
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour
chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== >> 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== >> 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== >> 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
".....Peux être a t-u des paramètres serveur modifié notamment sur les
comparaison avec null....."
Je viens de faire le test
-1) les données de ma table
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
(5 ligne(s) affectée(s))
-2) création de la table temp
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
donne,
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
1 NULL 110 60
2 f 5 6
2 r 5 8
2 NULL 10 14
3 t 10 7
3 NULL 10 7
NULL NULL 130 81
NULL a 100 50
NULL e 10 10
NULL f 5 6
NULL r 5 8
NULL t 10 7
(14 ligne(s) affectée(s))
et enfin
la clause where :
A B C D
----------- ---- ----------- -----------
1 a 100 50
1 e 10 10
1 NULL 110 60
2 f 5 6
2 r 5 8
2 NULL 10 14
3 t 10 7
3 NULL 10 7
NULL NULL 130 81
(9 ligne(s) affectée(s))
et j'obtiens la ligne null null 130 81,
pour info je suis en SQL SERVER 2000 sp3a
Peux être a t-u des paramètres serveur modifié notamment sur les
comparaison
avec null.
"David" a écrit :Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour
chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== >> 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== >> 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== >> 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== >1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== >1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== >1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== >1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== >1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== >1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== >1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== >1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais supprimer
les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== >1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Ravi de l'apprendre que chez toi ca marche. Malheuresement pour moi cela ne
marche pas.
lol
> ".....Peux être a t-u des paramètres serveur modifié notamment sur les
> comparaison avec null....."
Comment peut on savoir ca ?
"Laurent" a écrit dans le message de
news:
> Je viens de faire le test
> -1) les données de ma table
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 2 r 5 8
> 2 f 5 6
> 3 t 10 7
> (5 ligne(s) affectée(s))
>
>
> -2) création de la table temp
> SELECT
> A, B, sum(C) as C, sum(D) as D
> INTO #T0
> FROM
> tbl
> GROUP BY
> A, B WITH CUBE
> donne,
>
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 1 NULL 110 60
> 2 f 5 6
> 2 r 5 8
> 2 NULL 10 14
> 3 t 10 7
> 3 NULL 10 7
> NULL NULL 130 81
> NULL a 100 50
> NULL e 10 10
> NULL f 5 6
> NULL r 5 8
> NULL t 10 7
>
> (14 ligne(s) affectée(s))
>
> et enfin
>
> la clause where :
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 1 NULL 110 60
> 2 f 5 6
> 2 r 5 8
> 2 NULL 10 14
> 3 t 10 7
> 3 NULL 10 7
> NULL NULL 130 81
>
> (9 ligne(s) affectée(s))
>
> et j'obtiens la ligne null null 130 81,
> pour info je suis en SQL SERVER 2000 sp3a
> Peux être a t-u des paramètres serveur modifié notamment sur les
> comparaison
> avec null.
>
> "David" a écrit :
>
>> Bonjour,
>>
>> Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
>> prime abord
>> A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour
>> chaque
>> catégorie.
>>
>> Ma table d'origine contient ceci:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 2 r 5 8
>> 2 f 5 6
>> 3 t 10 7
>>
>> Apres la requete utilisant le CUBE
>> SELECT
>> A, B, sum(C) as C, sum(D) as D
>> INTO #T0
>> FROM
>> tbl
>> GROUP BY
>> A, B WITH CUBE
>>
>> ,j'obtiens ceci:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 1 null 110 60
>> 2 r 5 8
>> 2 f 5 6
>> 2 null 10 14
>> 3 t 10 7
>> 3 null 10 7
>> null null 130 81
>> null a 100 50
>> null e 10 10
>> null r 5 8
>> null f 5 6
>> null t 10 7
>>
>>
>> C'est à partir de maintenant que le problème se pose, je voudrais
>> supprimer
>> les lignes répondant au critere suivant:
>> (A is null) AND (B is not null)
>> Donc, je dois garder le contraire de cette expression, ce qui me donne:
>> NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
>> Voici la requete:
>> SELECT
>> *
>> FROM
>> #T0
>> WHERE
>> (A is not null) or (B is null)
>>
>> Voici le résultat:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 1 null 110 60
>> 2 r 5 8
>> 2 f 5 6
>> 2 null 10 14
>> 3 t 10 7
>> 3 null 10 7
>>
>> Problème, il me manque la ligne suivante:
>> null null 130 81
>>
>> que je veux conserver dans mon résultat final
>>
>> SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
>>
>>
>>
>>
>>
>>
>>
>>
>>
Ravi de l'apprendre que chez toi ca marche. Malheuresement pour moi cela ne
marche pas.
lol
> ".....Peux être a t-u des paramètres serveur modifié notamment sur les
> comparaison avec null....."
Comment peut on savoir ca ?
"Laurent" <Laurent@discussions.microsoft.com> a écrit dans le message de
news: 8EE99591-8E41-4C83-9432-EE1BA2E4DBA1@microsoft.com...
> Je viens de faire le test
> -1) les données de ma table
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 2 r 5 8
> 2 f 5 6
> 3 t 10 7
> (5 ligne(s) affectée(s))
>
>
> -2) création de la table temp
> SELECT
> A, B, sum(C) as C, sum(D) as D
> INTO #T0
> FROM
> tbl
> GROUP BY
> A, B WITH CUBE
> donne,
>
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 1 NULL 110 60
> 2 f 5 6
> 2 r 5 8
> 2 NULL 10 14
> 3 t 10 7
> 3 NULL 10 7
> NULL NULL 130 81
> NULL a 100 50
> NULL e 10 10
> NULL f 5 6
> NULL r 5 8
> NULL t 10 7
>
> (14 ligne(s) affectée(s))
>
> et enfin
>
> la clause where :
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 1 NULL 110 60
> 2 f 5 6
> 2 r 5 8
> 2 NULL 10 14
> 3 t 10 7
> 3 NULL 10 7
> NULL NULL 130 81
>
> (9 ligne(s) affectée(s))
>
> et j'obtiens la ligne null null 130 81,
> pour info je suis en SQL SERVER 2000 sp3a
> Peux être a t-u des paramètres serveur modifié notamment sur les
> comparaison
> avec null.
>
> "David" a écrit :
>
>> Bonjour,
>>
>> Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
>> prime abord
>> A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour
>> chaque
>> catégorie.
>>
>> Ma table d'origine contient ceci:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 2 r 5 8
>> 2 f 5 6
>> 3 t 10 7
>>
>> Apres la requete utilisant le CUBE
>> SELECT
>> A, B, sum(C) as C, sum(D) as D
>> INTO #T0
>> FROM
>> tbl
>> GROUP BY
>> A, B WITH CUBE
>>
>> ,j'obtiens ceci:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 1 null 110 60
>> 2 r 5 8
>> 2 f 5 6
>> 2 null 10 14
>> 3 t 10 7
>> 3 null 10 7
>> null null 130 81
>> null a 100 50
>> null e 10 10
>> null r 5 8
>> null f 5 6
>> null t 10 7
>>
>>
>> C'est à partir de maintenant que le problème se pose, je voudrais
>> supprimer
>> les lignes répondant au critere suivant:
>> (A is null) AND (B is not null)
>> Donc, je dois garder le contraire de cette expression, ce qui me donne:
>> NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
>> Voici la requete:
>> SELECT
>> *
>> FROM
>> #T0
>> WHERE
>> (A is not null) or (B is null)
>>
>> Voici le résultat:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 1 null 110 60
>> 2 r 5 8
>> 2 f 5 6
>> 2 null 10 14
>> 3 t 10 7
>> 3 null 10 7
>>
>> Problème, il me manque la ligne suivante:
>> null null 130 81
>>
>> que je veux conserver dans mon résultat final
>>
>> SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
>>
>>
>>
>>
>>
>>
>>
>>
>>
Ravi de l'apprendre que chez toi ca marche. Malheuresement pour moi cela ne
marche pas.
lol
> ".....Peux être a t-u des paramètres serveur modifié notamment sur les
> comparaison avec null....."
Comment peut on savoir ca ?
"Laurent" a écrit dans le message de
news:
> Je viens de faire le test
> -1) les données de ma table
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 2 r 5 8
> 2 f 5 6
> 3 t 10 7
> (5 ligne(s) affectée(s))
>
>
> -2) création de la table temp
> SELECT
> A, B, sum(C) as C, sum(D) as D
> INTO #T0
> FROM
> tbl
> GROUP BY
> A, B WITH CUBE
> donne,
>
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 1 NULL 110 60
> 2 f 5 6
> 2 r 5 8
> 2 NULL 10 14
> 3 t 10 7
> 3 NULL 10 7
> NULL NULL 130 81
> NULL a 100 50
> NULL e 10 10
> NULL f 5 6
> NULL r 5 8
> NULL t 10 7
>
> (14 ligne(s) affectée(s))
>
> et enfin
>
> la clause where :
> A B C D
> ----------- ---- ----------- -----------
> 1 a 100 50
> 1 e 10 10
> 1 NULL 110 60
> 2 f 5 6
> 2 r 5 8
> 2 NULL 10 14
> 3 t 10 7
> 3 NULL 10 7
> NULL NULL 130 81
>
> (9 ligne(s) affectée(s))
>
> et j'obtiens la ligne null null 130 81,
> pour info je suis en SQL SERVER 2000 sp3a
> Peux être a t-u des paramètres serveur modifié notamment sur les
> comparaison
> avec null.
>
> "David" a écrit :
>
>> Bonjour,
>>
>> Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
>> prime abord
>> A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour
>> chaque
>> catégorie.
>>
>> Ma table d'origine contient ceci:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 2 r 5 8
>> 2 f 5 6
>> 3 t 10 7
>>
>> Apres la requete utilisant le CUBE
>> SELECT
>> A, B, sum(C) as C, sum(D) as D
>> INTO #T0
>> FROM
>> tbl
>> GROUP BY
>> A, B WITH CUBE
>>
>> ,j'obtiens ceci:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 1 null 110 60
>> 2 r 5 8
>> 2 f 5 6
>> 2 null 10 14
>> 3 t 10 7
>> 3 null 10 7
>> null null 130 81
>> null a 100 50
>> null e 10 10
>> null r 5 8
>> null f 5 6
>> null t 10 7
>>
>>
>> C'est à partir de maintenant que le problème se pose, je voudrais
>> supprimer
>> les lignes répondant au critere suivant:
>> (A is null) AND (B is not null)
>> Donc, je dois garder le contraire de cette expression, ce qui me donne:
>> NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
>> Voici la requete:
>> SELECT
>> *
>> FROM
>> #T0
>> WHERE
>> (A is not null) or (B is null)
>>
>> Voici le résultat:
>> A B C D
>> =============== > >> 1 a 100 50
>> 1 e 10 10
>> 1 null 110 60
>> 2 r 5 8
>> 2 f 5 6
>> 2 null 10 14
>> 3 t 10 7
>> 3 null 10 7
>>
>> Problème, il me manque la ligne suivante:
>> null null 130 81
>>
>> que je veux conserver dans mon résultat final
>>
>> SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
>>
>>
>>
>>
>>
>>
>>
>>
>>
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
supprimer les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
supprimer les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!
Bonjour,
Je m'arrache les cheveux depuis 1 journée sur une requête tout simple de
prime abord
A l'aide de l'instruction CUBE, j'obtiens plusieurs sous total pour chaque
catégorie.
Ma table d'origine contient ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
2 r 5 8
2 f 5 6
3 t 10 7
Apres la requete utilisant le CUBE
SELECT
A, B, sum(C) as C, sum(D) as D
INTO #T0
FROM
tbl
GROUP BY
A, B WITH CUBE
,j'obtiens ceci:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
null null 130 81
null a 100 50
null e 10 10
null r 5 8
null f 5 6
null t 10 7
C'est à partir de maintenant que le problème se pose, je voudrais
supprimer les lignes répondant au critere suivant:
(A is null) AND (B is not null)
Donc, je dois garder le contraire de cette expression, ce qui me donne:
NOT ((A is null) AND (B is not null)) <=> (A is not null) or (B is null)
Voici la requete:
SELECT
*
FROM
#T0
WHERE
(A is not null) or (B is null)
Voici le résultat:
A B C D
=============== > 1 a 100 50
1 e 10 10
1 null 110 60
2 r 5 8
2 f 5 6
2 null 10 14
3 t 10 7
3 null 10 7
Problème, il me manque la ligne suivante:
null null 130 81
que je veux conserver dans mon résultat final
SI QUELQU'UN POUVAIT M'AIDER, MERCI !!!