Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pb utilisation alias colonne dans une vue [ SQL Server, MSDE, SQL Express / Requêtes ] (babe59)

lundi 26 juin 2006 à 17:54:44 | Pb utilisation alias colonne dans une vue

babe59

Bonjour,

J'essaye de créer une vue sous SQL Server express où :
   - je formate deux dates (DH_D & DH_F) sous le format  99/99/9999 
   - je calcule une différence entre ces deux dates (calcul de la durée)

La syntaxe ci dessous génére une erreur : DH_D et DH_F ne sont pas connus dans l'instruction DateDiff. Je vois bien les colonnes apparaître avec les dates au bon format lors de l'execution de la requete mais SQL n'arrive pas à utiliser les alias dans l'instruction DateDiff...

SELECT     dbo.TBL_PAT.NOM, dbo.TBL_PAT.PRENOM, dbo.TBL_PIECE.LIB_LONG AS PIECE,
                      SUBSTRING(dbo.TBL_PERIODE.DH_DEBUT, 7, 2)
                      + '/' + SUBSTRING(dbo.TBL_PERIODE.DH_DEBUT, 5, 2) + '/' + SUBSTRING(dbo.TBL_PERIODE.DH_DEBUT, 1, 4)
                      + ' ' + SUBSTRING(dbo.TBL_PERIODE.DH_DEBUT, 9, 2) + ':' + SUBSTRING(dbo.TBL_PERIODE.DH_DEBUT, 11, 2)
                      + ':' + SUBSTRING(dbo.TBL_PERIODE.DH_DEBUT, 13, 2) AS DH_D,
                      SUBSTRING(dbo.TBL_PERIODE.DH_FIN, 7, 2)
                      + '/' + SUBSTRING(dbo.TBL_PERIODE.DH_FIN, 5, 2) + '/' + SUBSTRING(dbo.TBL_PERIODE.DH_FIN, 1, 4)
                      + ' ' + SUBSTRING(dbo.TBL_PERIODE.DH_FIN, 9, 2) + ':' + SUBSTRING(dbo.TBL_PERIODE.DH_FIN, 11, 2)
                      + ':' + SUBSTRING(dbo.TBL_PERIODE.DH_FIN, 13, 2) AS DH_F,
                      DATEDIFF(dd, SUBSTRING(DH_D, 1, 10), SUBSTRING(DH_F, 1, 10)) AS DUREE
FROM         dbo.TBL_ETAGE INNER JOIN
                      dbo.TBL_PIECE ON dbo.TBL_ETAGE.PK_ETAGE = dbo.TBL_PIECE.FK_ETAGE INNER JOIN
                      dbo.TBL_TV ON dbo.TBL_PIECE.PK_PIECE = dbo.TBL_TV.FK_PIECE INNER JOIN
                      dbo.TBL_PAT INNER JOIN
                      dbo.TBL_PERIODE ON dbo.TBL_PAT.PK_PATIENT = dbo.TBL_PERIODE.FK_PATIENT ON
                      dbo.TBL_TV.PK_PRISE_TV = dbo.TBL_PERIODE.FK_PRISE_TV
WHERE     (dbo.TBL_PERIODE.ETAT_PERIODE = 'T') AND (dbo.TBL_PERIODE.DH_CLOTURE >= '20060601080000') AND
                      (dbo.TBL_PERIODE.DH_CLOTURE <= '200606300800')

Pouvez vous m'aider
Merci



DT

jeudi 29 juin 2006 à 11:44:25 | Re : Pb utilisation alias colonne dans une vue

skweeky

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Oui, c'est normal, si je définie un alias sur un champ je ne peux le reprendre directement dans le même SELECT, par exemple :

SELECT [CultureID]
,[Name] AS X
,[ModifiedDate] + X
FROM [AdventureWorks].[Production].[Culture]

Pour pouvoir l'utiliser soit un reprend la formule à la base de l'alias, dans on cas c'est énorme donc pas très simple... Ou sinon une sous requête :

SELECT X + [ModifiedDate]
FROM
(
SELECT [CultureID]
,[Name] AS X
,[ModifiedDate]
FROM [AdventureWorks].[Production].[Culture]
) AS W


-----------------
Christian Robert
Winwise

vendredi 30 juin 2006 à 13:57:29 | Re : Pb utilisation alias colonne dans une vue

babe59

Merci beaucoup pour l'info et l'exemple

Slts

DT



Cette discussion est classé dans : substring, tbl, periode, dbo, dh


Répondre à ce message

Sujets en rapport avec ce message

Ajouter une colonne [ par olaaa ] En fait je shouaite ajouter une colonne a ma table record_tbl a chaque fois qu'un nouveau tuple est ajouté a la table additional_field_tbl. Pour cela Requete de mise à jour Access [ par lamoedo59 ] J'ai besoin d'aide... J'utilise une requete access appelée depuis une page asp pour mettre à jour ma base de données. La requete fonctionne correcteme Requete sur un AGREGAT [ par cyberice67 ] Bonjour, Voilà j'ai un big problème sur une requete SQL. J'ai une base de donnée SQL Server est j'essaie de créer une requete portant sur un agregat. Besoin d'aide en SQL avec access [ par developvbdebut ] Bonjour tout le mondeon tape le nom recherché dans une zone de text. les noms et prenoms s'affiche dans une zone de liste (car plusieurs membres de la requete sur pls bases.... [ par exyacc ] salut, voila, j'utilise msde et j'arrive pas a faire des requetes sur des tables qui se trouvent sur 2 bases differentes.... j'ai essayé genre: INS Insert de select [ par elpens ] Bonjour, j'ai un petit soucis avec une procédure :Voilà :Je voudrai insérer les valeurs obtenues de la deuxième query, dans la première queryINSERT IN Proc Stock - Algo [ par cbu ] Bonjour,voila j'ai cette proc stock :set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[sp_UserLogin]     @pi_Login Varchar(50)   , @pi TRIGGER AFTER / BEFORE [ par vladam ] hello, j'ai un trigger :CREATETRIGGER dbo.IsAuthDeleted </font Problème de suppression [ par cbu ] Bonjour,j'ai ceci :declare @IBID intset @IBID = 50    DELETE FROM dbo.mnBoIB     WHERE (dbo.mnBoIB.IBID=@IBID)    AND (@IBID not in (SELECT DISTINCT d Doubles Jointures [ par babe59 ] BonjourTBL_CUSTOMER est en relation 1,n avec une table TBL_TOWN (la ville/CP du client)TBL_CUSTOMER est en relation 1,n avec une table TBL_COLLABORATO


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.