|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : février 2011 Messages : 60 ![]() |
Bonjour,
J'aimerais savoir s'il existe une solution en t-sql qui détermine les bornes d'intersection de 4 segments colinéaires.J'ai besoin que des bornes des parties des segments inclus dans le premier segment. Merci de m'aider. |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
Sous SQL Server, tu as à ta disposition le langage T-SQL , mais tu as également la possibilité d'écrire des fonctions et procédures en mettant en ouvre la CLR (Common Langage Runtime) (concrètement utiliser par exemple C# .Net sous SQL Server)
Dans les 2 cas (T-SQL ou CLR), il faut mettre au clair l'algorithme et écrire la fonction ! Si par exemple tu disposes de l'algorithme voire même de la fonction déjà écrite en C# .Net (ou VB .Net), alors utiliser la CLR serait peut être, pour toi, la solution la plus appropriée (c.à.d la solution la plus rapide). Ci-dessous un lien qui traite de l'utilisation de la CLR sous SQL Server http://msdn.microsoft.com/en-us/library/ms345136 A+ |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : février 2011 Messages : 60 ![]() |
Bonjour,
oui merci pour ces conseils,mais je suis encore bloqué dans " il faut mettre au clair l'algorithme et écrire la fonction".!!! |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
peut-être pouvez vous donner un peu plus de précisions. quelles données avez vous, sous quelle forme, ... et un petit jeu d'essai + résultats attendus seraient les bienvenus ! |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : février 2011 Messages : 60 ![]() |
Merci,
Voici ma sources de données: chaque produit a quatre prix et chaque prix a une date début et une date fin. cet exemple pour 3 prix: code deb fin px deb fin py deb fin pz 111 2008/15/01 ..2008/29/01 x 2008/10/01 .2008/18/01 y 2008/25/01.2008/29/01 z Sortie dans la nouvelle table: code debut fin prix 111 2008/15/01.... 2008/18/01 p1(=x+ y) 111 2008/18/01.... 2008/25/01 p2 (=x) 111 2008/25/01.... 2008/29/01 p3 (x+z) Le choix des dates se fait selon les dates de modification de Y et Z, à chaque modification de dates je calcule un prix (X+Y+Z),L'intersection des dates se fait tjrs avec l'intervalle de X. |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : février 2011 Messages : 60 ![]() |
La source de données est sql server,
J'ai réflichi à faire une requête qui traite tout les cas, (case when then formule ) (case when then date) mais il y a un très grand nombre de cas pour les différents segment ,en plus je peux pas avoir pour une même ligne source par exemple 4 lignes en sortie,je dois imbriqué plusieurs select.... C'est compliqué comme si je fais le traitement manuellement. Je pensais à créer une fonction qui permet de faire ça. |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
vous pouvez par exemple jouer sur les auto-jointures... bien sur, comme je disais, avec un exemple concret, ca serait plus simple pour bien comprendre votre besoin... EDIT : pardon, je n'avais pas vu votre post précédent... |
|
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : février 2011 Messages : 60 ![]() |
oui bien sur "je ne pense pas que vous ayez 3 colonnes "deb" dans la même table"
J'ai fais jointure entre 3 tables de chaque prix ayant tous dat_debut dat_fin, mais j'ai besoin des prix de chaque table pour avoir le prix final (la somme des trois) à chaque modification. Est ce que ce que je dis est clair. |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
hé bien donnez nous la structure des 3 tables...
|
|
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Inscription : février 2011 Messages : 60 ![]() |
tab1:
code dat_debut dat_fin prix1 tab2: code dat_debut dat_fin prix2 tab3: code dat_debut dat_fin prix3 merci |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Il me semblait bien que cette question me disait quelque chose...
Seulement, la structure de vos tables, ainsi que le besoin précis semble changer à chaque fois... postez-nous : 1/ DDL de vos vraies tables contenant vos données 2/ un jeu d'essai sous forme "INSERT INTO..." 3/ le résultat attendu pour le jeu d'essai, mettez un peu plus qu'une ligne, en essayant de couvrir plusieurs cas (date début de y antérieure/postérieure à date debut de x, ...) |
|
|
00
|
|
|
#12 | ||||
|
Membre à l'essai
![]() Inscription : février 2011 Messages : 60 ![]() |
oui ces dans le même contexte !!! mais j'ai pas bien exprimé mon problème,
Bref, Source: Code :
Code :
L'insertion dans une table c'est pas un problème,l'essentiel que j'y arrive au résultat du calcul. J'espère que ces clair. cordialement. |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com