Bonjour à tous,
Histoire de faire avancer le schmillblick je me répond ;-)
Est ce que la seule solution pour reproduire cela en SQL serait :
declare @capital decimal, @nature int
set @capital = 1350
set @nature = 3
Select resultat = case when @capital >@00 then
case @nature when 3 then 945
when 2 then 682
when 1 then 700 end
when @capital >= 3000 then
case @nature when 3 then 885
when 2 then 662
when 1 then 650 end
when @capital >= 2000 then
case @nature when 3 then 825
when 2 then 642
when 1 then 600 end
when @capital >= 1000 then
case @nature when 3 then 765
when 2 then 622
when 1 then 550 end
when @capital >= 0 then
case @nature when 3 then 705
when 2 then 602
when 1 then 500 end
end
MErci d'avance pour votre avis
Oliv'
"Oliv'" <(supprimerceci) a écrit dans le
message de news: eE$fi$
Bonjour à tous,
J'ai actuellement un progiciel qui utilise SQLSERVER , dans celui ci je peux
tarifer soit en requêtes SQL ou par l'intermédiaire d'un classeur Excel.
Je voudrais savoir s'il est possible de reproduire dans une requete SQL ceci
:
soit sous excel un tableau à double entrée avec en intersection la valeur
dont j'ai besoin
capital | Nature|Resultat
2000 | 2 |642
Capital/nature |1 |2 |3
0 |500 |602 |705
1000 |550 |622 |765
2000 |600 |642 |825
3000 |650 |662 |885
4000 |700 |682 |945
La formule sous resultat est =RECHERCHEV(A2;A3:D8;EQUIV(B2;A3:D3;0);1)
capital est en A1.
945 en D8.
La recherche dans la colonne A se fait en valeur approchée et je cherche
l'intersection avec la ligne 3 en valeur exacte.
Bien sûr mon tableau réél est bien plus grand.
Merci d'avance pour vos idées.
Oliv'
Bonjour à tous,
Histoire de faire avancer le schmillblick je me répond ;-)
Est ce que la seule solution pour reproduire cela en SQL serait :
declare @capital decimal, @nature int
set @capital = 1350
set @nature = 3
Select resultat = case when @capital >@00 then
case @nature when 3 then 945
when 2 then 682
when 1 then 700 end
when @capital >= 3000 then
case @nature when 3 then 885
when 2 then 662
when 1 then 650 end
when @capital >= 2000 then
case @nature when 3 then 825
when 2 then 642
when 1 then 600 end
when @capital >= 1000 then
case @nature when 3 then 765
when 2 then 622
when 1 then 550 end
when @capital >= 0 then
case @nature when 3 then 705
when 2 then 602
when 1 then 500 end
end
MErci d'avance pour votre avis
Oliv'
"Oliv'" <(supprimerceci)catteau@ricour-assurances.fr> a écrit dans le
message de news: eE$fi$5KFHA.1884@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
J'ai actuellement un progiciel qui utilise SQLSERVER , dans celui ci je peux
tarifer soit en requêtes SQL ou par l'intermédiaire d'un classeur Excel.
Je voudrais savoir s'il est possible de reproduire dans une requete SQL ceci
:
soit sous excel un tableau à double entrée avec en intersection la valeur
dont j'ai besoin
capital | Nature|Resultat
2000 | 2 |642
Capital/nature |1 |2 |3
0 |500 |602 |705
1000 |550 |622 |765
2000 |600 |642 |825
3000 |650 |662 |885
4000 |700 |682 |945
La formule sous resultat est =RECHERCHEV(A2;A3:D8;EQUIV(B2;A3:D3;0);1)
capital est en A1.
945 en D8.
La recherche dans la colonne A se fait en valeur approchée et je cherche
l'intersection avec la ligne 3 en valeur exacte.
Bien sûr mon tableau réél est bien plus grand.
Merci d'avance pour vos idées.
Oliv'
Bonjour à tous,
Histoire de faire avancer le schmillblick je me répond ;-)
Est ce que la seule solution pour reproduire cela en SQL serait :
declare @capital decimal, @nature int
set @capital = 1350
set @nature = 3
Select resultat = case when @capital >@00 then
case @nature when 3 then 945
when 2 then 682
when 1 then 700 end
when @capital >= 3000 then
case @nature when 3 then 885
when 2 then 662
when 1 then 650 end
when @capital >= 2000 then
case @nature when 3 then 825
when 2 then 642
when 1 then 600 end
when @capital >= 1000 then
case @nature when 3 then 765
when 2 then 622
when 1 then 550 end
when @capital >= 0 then
case @nature when 3 then 705
when 2 then 602
when 1 then 500 end
end
MErci d'avance pour votre avis
Oliv'
"Oliv'" <(supprimerceci) a écrit dans le
message de news: eE$fi$
Bonjour à tous,
J'ai actuellement un progiciel qui utilise SQLSERVER , dans celui ci je peux
tarifer soit en requêtes SQL ou par l'intermédiaire d'un classeur Excel.
Je voudrais savoir s'il est possible de reproduire dans une requete SQL ceci
:
soit sous excel un tableau à double entrée avec en intersection la valeur
dont j'ai besoin
capital | Nature|Resultat
2000 | 2 |642
Capital/nature |1 |2 |3
0 |500 |602 |705
1000 |550 |622 |765
2000 |600 |642 |825
3000 |650 |662 |885
4000 |700 |682 |945
La formule sous resultat est =RECHERCHEV(A2;A3:D8;EQUIV(B2;A3:D3;0);1)
capital est en A1.
945 en D8.
La recherche dans la colonne A se fait en valeur approchée et je cherche
l'intersection avec la ligne 3 en valeur exacte.
Bien sûr mon tableau réél est bien plus grand.
Merci d'avance pour vos idées.
Oliv'
Le mieux serait de créer des tables de tranche et de nature de la
sorte :
CREATE TABLE T_TRANCHE_CAPITAL_TRC
(TRC_ID INTEGER NOT NULL PRIMARY KEY,
TRC_MAX_CAPITAL DECIMAL(16,2) NOT NULL)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (1, 0)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (2, 1000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (3, 2000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (4, 3000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (5, 4000)
CREATE TABLE T_NATURE_NTR
(NTR_ID INTEGER NOT NULL PRIMARY KEY,
NTR_VAL INTEGER NOT NULL)
INSERT INTO T_NATURE_NTR VALUES (1, 1)
INSERT INTO T_NATURE_NTR VALUES (2, 2)
INSERT INTO T_NATURE_NTR VALUES (3, 3)
CREATE TABLE TJ_CAPITAL_NATURE_CPN
(TRC_ID INTEGER NOT NULL FOREIGN KEY REFERENCES CAPITAL_TRC (TRC_ID
), NTR_ID INTEGER NOT NULL FOREIGN KEY REFERENCES T_NATURE_NTR
(NTR_ID), CPN_VAL INTEGER NOT NULL,
CONSTRAINT PK_CPN PRIMARY KEY (TRC_ID,NTR_ID))
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 1, 500)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 2, 602)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 3, 705)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 1, 550)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 2, 622)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 3, 765)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 1, 600)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 2, 642)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 3, 825)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 1, 650)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 2, 662)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 3, 885)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 1, 700)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 2, 682)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 3, 945)
Dès lors une simple requête SQL suffit :
SELECT CPN_VAL
FROM T_TRANCHE_CAPITAL_TRC TRC
INNER JOIN TJ_CAPITAL_NATURE_CPN CPN
ON TRC.TRC_ID = CPN.TRC_ID
INNER JOIN T_NATURE_NTR NTR
ON CPN.NTR_ID = NTR.NTR_ID
WHERE TRC_MAX_CAPITAL = (SELECT MAX(TRC_MAX_CAPITAL)
FROM T_TRANCHE_CAPITAL_TRC
WHERE TRC_MAX_CAPITAL<1350
AND NTR_VAL = 3
La conclusion est simple : apprendre le langage SQL !
Mon site comme mon bouquin peuvent t'y aider...
A +
Oliv' a écrit:Bonjour à tous,
Histoire de faire avancer le schmillblick je me répond ;-)
Est ce que la seule solution pour reproduire cela en SQL serait :
declare @capital decimal, @nature int
set @capital = 1350
set @nature = 3
Select resultat = case when @capital >@00 then
case @nature when 3 then 945
when 2 then 682
when 1 then 700 end
when @capital >= 3000 then
case @nature when 3 then 885
when 2 then 662
when 1 then 650 end
when @capital >= 2000 then
case @nature when 3 then 825
when 2 then 642
when 1 then 600 end
when @capital >= 1000 then
case @nature when 3 then 765
when 2 then 622
when 1 then 550 end
when @capital >= 0 then
case @nature when 3 then 705
when 2 then 602
when 1 then 500 end
end
MErci d'avance pour votre avis
Oliv'
"Oliv'" <(supprimerceci) a écrit dans le
message de news: eE$fi$
Bonjour à tous,
J'ai actuellement un progiciel qui utilise SQLSERVER , dans celui ci
je peux tarifer soit en requêtes SQL ou par l'intermédiaire d'un
classeur Excel.
Je voudrais savoir s'il est possible de reproduire dans une requete
SQL ceci
soit sous excel un tableau à double entrée avec en intersection la
valeur dont j'ai besoin
capital | Nature|Resultat
2000 | 2 |642
Capital/nature |1 |2 |3
0 |500 |602 |705
1000 |550 |622 |765
2000 |600 |642 |825
3000 |650 |662 |885
4000 |700 |682 |945
La formule sous resultat est
=RECHERCHEV(A2;A3:D8;EQUIV(B2;A3:D3;0);1) capital est en A1.
945 en D8.
La recherche dans la colonne A se fait en valeur approchée et je
cherche l'intersection avec la ligne 3 en valeur exacte.
Bien sûr mon tableau réél est bien plus grand.
Merci d'avance pour vos idées.
Oliv'
Le mieux serait de créer des tables de tranche et de nature de la
sorte :
CREATE TABLE T_TRANCHE_CAPITAL_TRC
(TRC_ID INTEGER NOT NULL PRIMARY KEY,
TRC_MAX_CAPITAL DECIMAL(16,2) NOT NULL)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (1, 0)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (2, 1000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (3, 2000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (4, 3000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (5, 4000)
CREATE TABLE T_NATURE_NTR
(NTR_ID INTEGER NOT NULL PRIMARY KEY,
NTR_VAL INTEGER NOT NULL)
INSERT INTO T_NATURE_NTR VALUES (1, 1)
INSERT INTO T_NATURE_NTR VALUES (2, 2)
INSERT INTO T_NATURE_NTR VALUES (3, 3)
CREATE TABLE TJ_CAPITAL_NATURE_CPN
(TRC_ID INTEGER NOT NULL FOREIGN KEY REFERENCES CAPITAL_TRC (TRC_ID
), NTR_ID INTEGER NOT NULL FOREIGN KEY REFERENCES T_NATURE_NTR
(NTR_ID), CPN_VAL INTEGER NOT NULL,
CONSTRAINT PK_CPN PRIMARY KEY (TRC_ID,NTR_ID))
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 1, 500)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 2, 602)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 3, 705)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 1, 550)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 2, 622)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 3, 765)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 1, 600)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 2, 642)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 3, 825)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 1, 650)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 2, 662)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 3, 885)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 1, 700)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 2, 682)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 3, 945)
Dès lors une simple requête SQL suffit :
SELECT CPN_VAL
FROM T_TRANCHE_CAPITAL_TRC TRC
INNER JOIN TJ_CAPITAL_NATURE_CPN CPN
ON TRC.TRC_ID = CPN.TRC_ID
INNER JOIN T_NATURE_NTR NTR
ON CPN.NTR_ID = NTR.NTR_ID
WHERE TRC_MAX_CAPITAL = (SELECT MAX(TRC_MAX_CAPITAL)
FROM T_TRANCHE_CAPITAL_TRC
WHERE TRC_MAX_CAPITAL<1350
AND NTR_VAL = 3
La conclusion est simple : apprendre le langage SQL !
Mon site comme mon bouquin peuvent t'y aider...
A +
Oliv' a écrit:
Bonjour à tous,
Histoire de faire avancer le schmillblick je me répond ;-)
Est ce que la seule solution pour reproduire cela en SQL serait :
declare @capital decimal, @nature int
set @capital = 1350
set @nature = 3
Select resultat = case when @capital >@00 then
case @nature when 3 then 945
when 2 then 682
when 1 then 700 end
when @capital >= 3000 then
case @nature when 3 then 885
when 2 then 662
when 1 then 650 end
when @capital >= 2000 then
case @nature when 3 then 825
when 2 then 642
when 1 then 600 end
when @capital >= 1000 then
case @nature when 3 then 765
when 2 then 622
when 1 then 550 end
when @capital >= 0 then
case @nature when 3 then 705
when 2 then 602
when 1 then 500 end
end
MErci d'avance pour votre avis
Oliv'
"Oliv'" <(supprimerceci)catteau@ricour-assurances.fr> a écrit dans le
message de news: eE$fi$5KFHA.1884@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
J'ai actuellement un progiciel qui utilise SQLSERVER , dans celui ci
je peux tarifer soit en requêtes SQL ou par l'intermédiaire d'un
classeur Excel.
Je voudrais savoir s'il est possible de reproduire dans une requete
SQL ceci
soit sous excel un tableau à double entrée avec en intersection la
valeur dont j'ai besoin
capital | Nature|Resultat
2000 | 2 |642
Capital/nature |1 |2 |3
0 |500 |602 |705
1000 |550 |622 |765
2000 |600 |642 |825
3000 |650 |662 |885
4000 |700 |682 |945
La formule sous resultat est
=RECHERCHEV(A2;A3:D8;EQUIV(B2;A3:D3;0);1) capital est en A1.
945 en D8.
La recherche dans la colonne A se fait en valeur approchée et je
cherche l'intersection avec la ligne 3 en valeur exacte.
Bien sûr mon tableau réél est bien plus grand.
Merci d'avance pour vos idées.
Oliv'
Le mieux serait de créer des tables de tranche et de nature de la
sorte :
CREATE TABLE T_TRANCHE_CAPITAL_TRC
(TRC_ID INTEGER NOT NULL PRIMARY KEY,
TRC_MAX_CAPITAL DECIMAL(16,2) NOT NULL)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (1, 0)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (2, 1000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (3, 2000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (4, 3000)
INSERT INTO T_TRANCHE_CAPITAL_TRC VALUES (5, 4000)
CREATE TABLE T_NATURE_NTR
(NTR_ID INTEGER NOT NULL PRIMARY KEY,
NTR_VAL INTEGER NOT NULL)
INSERT INTO T_NATURE_NTR VALUES (1, 1)
INSERT INTO T_NATURE_NTR VALUES (2, 2)
INSERT INTO T_NATURE_NTR VALUES (3, 3)
CREATE TABLE TJ_CAPITAL_NATURE_CPN
(TRC_ID INTEGER NOT NULL FOREIGN KEY REFERENCES CAPITAL_TRC (TRC_ID
), NTR_ID INTEGER NOT NULL FOREIGN KEY REFERENCES T_NATURE_NTR
(NTR_ID), CPN_VAL INTEGER NOT NULL,
CONSTRAINT PK_CPN PRIMARY KEY (TRC_ID,NTR_ID))
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 1, 500)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 2, 602)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (1, 3, 705)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 1, 550)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 2, 622)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (2, 3, 765)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 1, 600)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 2, 642)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (3, 3, 825)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 1, 650)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 2, 662)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (4, 3, 885)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 1, 700)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 2, 682)
INSERT INTO TJ_CAPITAL_NATURE_CPN VALUES (5, 3, 945)
Dès lors une simple requête SQL suffit :
SELECT CPN_VAL
FROM T_TRANCHE_CAPITAL_TRC TRC
INNER JOIN TJ_CAPITAL_NATURE_CPN CPN
ON TRC.TRC_ID = CPN.TRC_ID
INNER JOIN T_NATURE_NTR NTR
ON CPN.NTR_ID = NTR.NTR_ID
WHERE TRC_MAX_CAPITAL = (SELECT MAX(TRC_MAX_CAPITAL)
FROM T_TRANCHE_CAPITAL_TRC
WHERE TRC_MAX_CAPITAL<1350
AND NTR_VAL = 3
La conclusion est simple : apprendre le langage SQL !
Mon site comme mon bouquin peuvent t'y aider...
A +
Oliv' a écrit:Bonjour à tous,
Histoire de faire avancer le schmillblick je me répond ;-)
Est ce que la seule solution pour reproduire cela en SQL serait :
declare @capital decimal, @nature int
set @capital = 1350
set @nature = 3
Select resultat = case when @capital >@00 then
case @nature when 3 then 945
when 2 then 682
when 1 then 700 end
when @capital >= 3000 then
case @nature when 3 then 885
when 2 then 662
when 1 then 650 end
when @capital >= 2000 then
case @nature when 3 then 825
when 2 then 642
when 1 then 600 end
when @capital >= 1000 then
case @nature when 3 then 765
when 2 then 622
when 1 then 550 end
when @capital >= 0 then
case @nature when 3 then 705
when 2 then 602
when 1 then 500 end
end
MErci d'avance pour votre avis
Oliv'
"Oliv'" <(supprimerceci) a écrit dans le
message de news: eE$fi$
Bonjour à tous,
J'ai actuellement un progiciel qui utilise SQLSERVER , dans celui ci
je peux tarifer soit en requêtes SQL ou par l'intermédiaire d'un
classeur Excel.
Je voudrais savoir s'il est possible de reproduire dans une requete
SQL ceci
soit sous excel un tableau à double entrée avec en intersection la
valeur dont j'ai besoin
capital | Nature|Resultat
2000 | 2 |642
Capital/nature |1 |2 |3
0 |500 |602 |705
1000 |550 |622 |765
2000 |600 |642 |825
3000 |650 |662 |885
4000 |700 |682 |945
La formule sous resultat est
=RECHERCHEV(A2;A3:D8;EQUIV(B2;A3:D3;0);1) capital est en A1.
945 en D8.
La recherche dans la colonne A se fait en valeur approchée et je
cherche l'intersection avec la ligne 3 en valeur exacte.
Bien sûr mon tableau réél est bien plus grand.
Merci d'avance pour vos idées.
Oliv'