|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Benoit NeveIngénieur développement logiciels Inscription : mai 2011 Messages : 2 ![]() |
Bonjour à tous,
Tout d'abord, je sais parfaitement que l'on ne peut pas faire d'update dans une fonction. Mon problème est néanmoins le suivant. Je voudrais faire une requete sur une table d'articles (ARTICLE) avec une colonne me donnant les disponibilités entre 2 dates (Il s'agit de location). Cette disponibilité est calculée dans une fonction qui lance une requete sur une autre table (DISPON). Seulement voilà... C'est là que je coince. Cette table peut ne pas être totalement à jour et je devrais en début de fonction recalculer certaines colonnes de DISPON avant de faire le SELECT du résultat à renvoyer à ma requête originale (sur la table ARTICLE). Comment pourrais-je faire ? Merci de m'avoir lu jusqu'au bout ! |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Bonjour,
Postez la DDL de vos tables et un jeu d'essai. ++ |
|
00
|
|
|
#3 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
Effectivement, le script de création de la table et un jeu d'essai est le bien venu. Vous pouvez l'extraire en suivant le billet que j'ai publié à ce sujet, sans ses données, si la table n'est pas trop grosse, ce qui vous permettra de nous donner le jeu d'essai. Cela étant, je pense que la solution à votre problème est à priori une colonne calculée. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#4 | |
|
Invité de passage
![]() Benoit NeveIngénieur développement logiciels Inscription : mai 2011 Messages : 2 ![]() |
Citation:
Je vais préparer un jeu d'essai... Concernant la colonne calculée, c'était évidemment ma première idée mais le temps de calcul est beaucoup trop long. |
|
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Citation:
Je soupçonne que votre modèle de données n'est pas conforme aux formes normale et a donc introduit de la redondance, ce qu'il ne faut jamais faire en matières de SGBDR ! Si c'est le cas, remodélisez votre base ou bien basez votre requête sur les seules vrais valeurs ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
|
|
#8 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Citation:
Avez-vous regardé le plan d'une requête INSERT sur cette table ? Il manque peut-être des indexes ... @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com