Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2011, 00h08   #1
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 1
Points : 1
Par défaut Requête SQL

Bonjour à tous

Voici mon problème de débutant avec sql .
J’ai X colonnes de types
serie1     serie2    serie3     serie...
 100       100       100        120
 200       100       50          200   
 300       300       300         300  
 200       100       100         50  
 ETC..
Je souhaite avoir le Nb de série 100 de chaque colonne dans mon DataGridView.
Ex:serie1   1 fois 
    serie2   3 fois
    serie3   2 fois
    série... 0 fois
Avec cette requête je n'ai que la première valeur

Code :
1
2
3
4
5
SELECT  COUNT(Serie1) AS Expr1,
            COUNT(Serie2) AS Expr2, 
             COUNT(Serie3) AS Expr3, 
FROM     Feuil1$
WHERE  (Serie1 = @seriechercher)
ou avec

Code :
1
2
3
SELECT  COUNT(*)
FROM     Feuil1$
WHERE  (Serie1 = @seriechercher)
idem

En rajoutant OR j'obtiens la somme (6) mais
jamais la quantité par colonne
Code :
1
2
3
     WHERE  (Serie1 = @seriechercher)OR
                (Serie2 = @seriechercher)OR
                 (Serie3 = @seriechercher)
certainement un problème basique, mais je cale
Merci pour votre aide
LEONARDO95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2011, 00h46   #2
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Citation:
FROM Feuil1$
Bon tu m'as l'air de travailler avec excel et MSQUERY, un outil très loin d'être un SGBDR.
Je vais essayer de rendre la requête excel msquery compliant, donc si mes souvenirs sont bons... :
Code :
1
2
3
4
5
SELECT SUM(IFF (Serie1,100,1,0)) AS Expr1,
       SUM(IFF (Serie2,100,1,0)) AS Expr2,
       SUM(IFF (Serie3,100,1,0)) AS Expr3,
       ...
  FROM Feuil1$
en SQL normatif il faudrait utiliser CASE à la place de IFF
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2011, 00h58   #3
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 1
Points : 1
Par défaut aide pour une requete sql server

Bonsoir skuatamad

Tout d'abord merci pour ta réponse
comme précision je travail avec visual basic express 2010
et j'ai utilisé sql server 2008 pour créer ma base de donnée
à partir d'une feuille excel
LEONARDO95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2011, 01h06   #4
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Citation:
et j'ai utilisé sql server 2008 pour créer ma base de donnée
Ah, ben c'est beaucoup mieux. Si feuill1$ est le nom de la table sur SQL Server 2008 et que la requête est exécutée par SQL Server 2008, alors plutôt comme ça :
Code :
1
2
3
4
5
SELECT SUM(case when Serie1 = 100 then 1 end) AS Expr1,
       SUM(case when Serie2 = 100 then 1 end) AS Expr2,
       SUM(case when Serie3 = 100 then 1 end) AS Expr3,
       ...
  FROM Feuil1$
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/06/2011, 01h17   #5
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 1
Points : 1
Par défaut aide pour une requete sql

Citation:
Envoyé par skuatamad Voir le message
Ah, ben c'est beaucoup mieux. Si feuill1$ est le nom de la table sur SQL Server 2008 et que la requête est exécutée par SQL Server 2008, alors plutôt comme ça :
Code :
1
2
3
4
5
SELECT SUM(case when Serie1 = 100 then 1 end) AS Expr1,
       SUM(case when Serie2 = 100 then 1 end) AS Expr2,
       SUM(case when Serie3 = 100 then 1 end) AS Expr3,
       ...
  FROM Feuil1$
Skuatamad

La, il est un peu tard je corrige ma requête demain
et je te tiens informé.
Encore merci c'est sympa
A+
LEONARDO95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2011, 11h31   #6
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 1
Points : 1
Bonjour skuatamad

La, je dit bravo ça marche nickel,
Juste 2 questions, peut-on remplacer la valeur 100 par un input box Ex :=@N°série et as-tu connaissance d’un livre relatant de la mise en forme des requêtes SQL SERVER .
Pour visual basic 2010 je pense avoir ce qu’il faut.

Encore merci
LEONARDO95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2011, 16h44   #7
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Citation:
peut on remplacer La valeur 100 par un input box
Aucune idée je ne connais pas les technos que tu utilises.
Citation:
a tu connaissance d’un livre relatant de la mise en forme des requêtes SQL SERVER .
Je te conseille vivement d'apprendre la norme SQL avant d'apprendre un jargon spécifique à un SGBDR.
Quel est le meilleur livre sur le SQL ? plébiscite le livre de Frédéric Brouard (SQLPro sur le forum)
Ce livre met l'accent avant tout sur la norme, mais comme SQLPro est un expert SQL Server il est probable qu'il y ai des allusions faites à SQL Server.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h52.


 
 
 
 
Partenaires

Hébergement Web