IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

problème de requete


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2003
    Messages : 8
    Par défaut problème de requete
    Bonjour à tous,

    J'ai une requête que j'ai établi en access et qui marche bien sur ce logiciel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TRANSFORM Min(UserDefinedData.FieldValue) AS MinDeFieldValue
    SELECT UserDefinedData.UserDefinedRowId, Min(UserDefinedData.FieldValue) AS [Total de FieldValue]
    FROM UserDefinedFields INNER JOIN UserDefinedData ON UserDefinedFields.UserDefinedFieldId = UserDefinedData.UserDefinedFieldId GROUP BY UserDefinedData.UserDefinedRowId 
    PIVOT UserDefinedFields.FieldTitle;
    malheureusement, lorsque je la fais en sql server, il me retourne l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     System.Data.SqlClient.SqlException: 
    Incorrect syntax near 'UserDefinedData'. 
    Incorrect syntax near the keyword 'PIVOT'. 
    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) 
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) 
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) 
    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) 
    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 
    at DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL) 
    at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions) 
    TRANSFORM Min UserDefinedData.FieldValue AS MinDeFieldValue 
    SELECT UserDefinedData.UserDefinedRowId, Min(UserDefinedData.FieldValue) AS [Total de FieldValue] 
    FROM UserDefinedFields INNER JOIN UserDefinedData ON UserDefinedFields.UserDefinedFieldId = UserDefinedData.UserDefinedFieldId
    GROUP BY UserDefinedData.UserDefinedRowId 
    PIVOT (UserDefinedFields.FieldTitle)
    Les tables et leur contenu sont strictement identiques. J'ai beau me creuser les méninges, je ne trouve pas l'erreur.
    Pouvez-vous m'aider ?

    Merci

    Alain

    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    TRANSFORM ... PIVOT est une extension au langage SQL qui est spécifique à Access.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2003
    Messages : 8
    Par défaut
    Merci pour ta réponse rapide.

    Ok, je vois... alors, il y a-t-il une possibilité de "traduire" ce string sql d'access en langage compréhensible par sql server ?

    il y a-t-il une fonction correspondante ?

    merci

    alain

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2003
    Messages : 8
    Par défaut
    en fait, voilà mes tables

    la table UserDefinedData
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    UserDefinedFieldId	UserDefinedRowId	FieldValue
    1			1			host
    1			2			host
    2			1			2007-06-27T11:59:39
    2			2			2007-06-27T12:00:29
    3			1			host
    3			2			host
    4			1			2007-06-27T16:24:43
    4			2			2007-06-27T12:00:29
    5			1			Le bon pain
    5			2			gb
    6			1			Boulangerie
    6			2			Magasin
    7			1			bp@skynet.be
    8			1			http://www.ans.eu
    La table UserDefinedFields

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UserDefinedFieldId	ModuleId	FieldTitle	Visible	FieldOrder	FieldType	Required	Default	ExtendedSettings
    1			402		CreatedBy	0	1		CreatedBy	-1		
    2			402		CreatedAt	0	2		CreatedAt	-1		
    3			402		ChangedBy	0	3		ChangedBy	-1		
    4			402		ChangedAt	0	4		ChangedAt	-1		
    5			402		commerce	-1	5		String		0		
    6			402		sorte		-1	6		String		0		
    7			402		email		-1	7		EMail		0		
    8			402		url		-1	8		URL		0
    et la table UserDefinedRows

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    UserDefinedRowId	ModuleId
    1	              402
    2	              402


    Et en fait, mon souhait, c'est d'arriver à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UserDefinedRowId	Total de FieldValue	ChangedAt		ChangedBy	commerce	CreatedAt		CreatedBy	email		sorte		url
    1			2007-06-27T11:59:39	2007-06-27T16:24:43	host		Le bon pain	2007-06-27T11:59:39	host		bp@skynet.be	Boulangerie	http://www.ans.eu
    2			2007-06-27T12:00:29	2007-06-27T12:00:29	host		gb		2007-06-27T12:00:29	host		Magasin

    Ca fait 1 semaine que je sèche littéralement.

    Comme je l'ai écrit plus haut, en access, pas de prob, mais en sql pur et dur... pas moyen. Y'a probablement un truc qui m'échappe !

    Pouvez-vous m'aider ?

    Merci

    Alain

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2003
    Messages : 8
    Par défaut
    J'ai vu qu'il existait la fonction "pivot" sous sql server...

    Pouvez-vous m'aider, c'est très important.

    Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2003
    Messages : 8
    Par défaut
    Voilà,

    J'ai finalement trouvé ma requête ... avec pivot !

    Pour s'exercer, vous pouvez reprendre les tables au dessus dans le message et exécuter cette requête... c'est génial

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select UserDefinedRowId , [CreatedBy] , [CreatedAt] , [ChangedBy], [ChangedAt], [commerce], [sorte], [email], [url] 
    FROM (SELECT     UserDefinedData.FieldValue, UserDefinedFields.FieldTitle, UserDefinedData.UserDefinedRowId
          FROM         UserDefinedData INNER JOIN
                          UserDefinedFields ON UserDefinedData.UserDefinedFieldId = UserDefinedFields.UserDefinedFieldId INNER JOIN
                          UserDefinedRows ON UserDefinedData.UserDefinedRowId = UserDefinedRows.UserDefinedRowId) tablereponse
    pivot
    (
    MIN(tablereponse.FieldValue)
    for tablereponse.FieldTitle IN ([CreatedBy] , [CreatedAt] , [ChangedBy], [ChangedAt], [commerce], [sorte], [email], [url] )
    ) as P

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EJBQL] Problème de requete
    Par rivierem dans le forum Java EE
    Réponses: 3
    Dernier message: 16/10/2004, 10h05
  2. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  3. Problème de Requete...
    Par sebiv dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/04/2004, 16h21
  4. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 12h54
  5. Problème de requete multis-selections
    Par tripper.dim dans le forum SQL
    Réponses: 9
    Dernier message: 03/09/2003, 13h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo