Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois récupérer
le dernier enregistrement (MAX(Budget_Id), par exemple) et pouvoir
l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant l'insertion
d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois récupérer
le dernier enregistrement (MAX(Budget_Id), par exemple) et pouvoir
l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant l'insertion
d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois récupérer
le dernier enregistrement (MAX(Budget_Id), par exemple) et pouvoir
l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant l'insertion
d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Bonjour,J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus bas que
l'on sélectionnera dans les données à insérer. Cela donne par exemple
(1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Bonjour,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus bas que
l'on sélectionnera dans les données à insérer. Cela donne par exemple
(1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Bonjour,J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus bas que
l'on sélectionnera dans les données à insérer. Cela donne par exemple
(1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Merci Patrice de ta proposition,
Je coince à la création de @Décalage, je n'arrive pas à trouver comment
le crée.
A+ ;-)
Il se trouve que Patrice a formulé :Bonjour,J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus
bas que l'on sélectionnera dans les données à insérer. Cela donne par
exemple (1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Merci Patrice de ta proposition,
Je coince à la création de @Décalage, je n'arrive pas à trouver comment
le crée.
A+ ;-)
Il se trouve que Patrice a formulé :
Bonjour,
J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus
bas que l'on sélectionnera dans les données à insérer. Cela donne par
exemple (1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Merci Patrice de ta proposition,
Je coince à la création de @Décalage, je n'arrive pas à trouver comment
le crée.
A+ ;-)
Il se trouve que Patrice a formulé :Bonjour,J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus
bas que l'on sélectionnera dans les données à insérer. Cela donne par
exemple (1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois
récupérer le dernier enregistrement (MAX(Budget_Id), par exemple) et
pouvoir l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois
récupérer le dernier enregistrement (MAX(Budget_Id), par exemple) et
pouvoir l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois
récupérer le dernier enregistrement (MAX(Budget_Id), par exemple) et
pouvoir l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Bonjour,
La question n'est pas de le créer mais de le définir (valeur fixe), c'est
le delta entre la valeur mini et maxi de [Budget_Id] de la table [Budget] +
1
Exemple avec les données situées plus bas :
SELECT Budget_Id+7, ...
La valeur de @Décalage correspond à 1804-1798+1=7
EmanuelL a écrit :Merci Patrice de ta proposition,
Je coince à la création de @Décalage, je n'arrive pas à trouver comment le
crée.
A+ ;-)
Il se trouve que Patrice a formulé :Bonjour,J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus bas
que l'on sélectionnera dans les données à insérer. Cela donne par exemple
(1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Bonjour,
La question n'est pas de le créer mais de le définir (valeur fixe), c'est
le delta entre la valeur mini et maxi de [Budget_Id] de la table [Budget] +
1
Exemple avec les données situées plus bas :
SELECT Budget_Id+7, ...
La valeur de @Décalage correspond à 1804-1798+1=7
EmanuelL a écrit :
Merci Patrice de ta proposition,
Je coince à la création de @Décalage, je n'arrive pas à trouver comment le
crée.
A+ ;-)
Il se trouve que Patrice a formulé :
Bonjour,
J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus bas
que l'on sélectionnera dans les données à insérer. Cela donne par exemple
(1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Bonjour,
La question n'est pas de le créer mais de le définir (valeur fixe), c'est
le delta entre la valeur mini et maxi de [Budget_Id] de la table [Budget] +
1
Exemple avec les données situées plus bas :
SELECT Budget_Id+7, ...
La valeur de @Décalage correspond à 1804-1798+1=7
EmanuelL a écrit :Merci Patrice de ta proposition,
Je coince à la création de @Décalage, je n'arrive pas à trouver comment le
crée.
A+ ;-)
Il se trouve que Patrice a formulé :Bonjour,J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
[coupé]Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
Eventuellement :
INSERT INTO
SELECT Budget_Id+@Décalage etc...
@Décalage est la différence entre le prochain n° à insérer et le plus bas
que l'on sélectionnera dans les données à insérer. Cela donne par exemple
(1804+1-1798)=7
ce qui donnera bien
Budget_id+705 si Budget_id98
Budget_id+706 si Budget_id99
etc...
Tu calcules la prochaine valeur par un MAX et tu passes par une table
temporaire
SELECT Budget_Id=IDENTITY(INT, 1805, 1), Client_Id=Client_Id,
Designation='Budget 2010', Annee 10, Montant=Montant
INTO #Budget
FROM Budget
INSERT INTO Budget SELECT * FROM #Budget
Bien cordialement
Med Bouchenafa
"EmanuelL" wrote in message
news:Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois récupérer
le dernier enregistrement (MAX(Budget_Id), par exemple) et pouvoir
l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Tu calcules la prochaine valeur par un MAX et tu passes par une table
temporaire
SELECT Budget_Id=IDENTITY(INT, 1805, 1), Client_Id=Client_Id,
Designation='Budget 2010', Annee 10, Montant=Montant
INTO #Budget
FROM Budget
INSERT INTO Budget SELECT * FROM #Budget
Bien cordialement
Med Bouchenafa
"EmanuelL" <support@_nopop_fiduconsult.com> wrote in message
news:mn.c3a87d9b76f5add9.10594@nopopfiduconsult.com...
Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois récupérer
le dernier enregistrement (MAX(Budget_Id), par exemple) et pouvoir
l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Tu calcules la prochaine valeur par un MAX et tu passes par une table
temporaire
SELECT Budget_Id=IDENTITY(INT, 1805, 1), Client_Id=Client_Id,
Designation='Budget 2010', Annee 10, Montant=Montant
INTO #Budget
FROM Budget
INSERT INTO Budget SELECT * FROM #Budget
Bien cordialement
Med Bouchenafa
"EmanuelL" wrote in message
news:Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non auto-incrémentiel:'(,
j'aimerai insérer les budgets 2010 qui sont les mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois récupérer
le dernier enregistrement (MAX(Budget_Id), par exemple) et pouvoir
l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
SET @Decalage = (@Max - @Min + 1) + @Min
Donc cela donnerait :
DECLARE @Max int, @Min int, @Decalage int
select @Max = max(probudget_nr) from probudget -- La dernière valeur utilisée
select @Min = min(probudget_nr) from probudget where Annee 09 AND Montant
IS NOT NULL -- La plus petite valeur utilisée dans les valeurs à insérer
SET @Decalage = (@Max - @Min + 1) + @Min -- Donc cela donne de combien il
faut augmenter la plus petite valeur pour obtenir la prochaine valeur
utilisable
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id+@Decalage,Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Donc on copie les données en ajoutant cette valeur de décalage à chaque
valeur Budget_id existante ce qui donne bien de nouvelles valeurs non encore
utilisées...
SET @Decalage = (@Max - @Min + 1) + @Min
Donc cela donnerait :
DECLARE @Max int, @Min int, @Decalage int
select @Max = max(probudget_nr) from probudget -- La dernière valeur utilisée
select @Min = min(probudget_nr) from probudget where Annee 09 AND Montant
IS NOT NULL -- La plus petite valeur utilisée dans les valeurs à insérer
SET @Decalage = (@Max - @Min + 1) + @Min -- Donc cela donne de combien il
faut augmenter la plus petite valeur pour obtenir la prochaine valeur
utilisable
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id+@Decalage,Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Donc on copie les données en ajoutant cette valeur de décalage à chaque
valeur Budget_id existante ce qui donne bien de nouvelles valeurs non encore
utilisées...
SET @Decalage = (@Max - @Min + 1) + @Min
Donc cela donnerait :
DECLARE @Max int, @Min int, @Decalage int
select @Max = max(probudget_nr) from probudget -- La dernière valeur utilisée
select @Min = min(probudget_nr) from probudget where Annee 09 AND Montant
IS NOT NULL -- La plus petite valeur utilisée dans les valeurs à insérer
SET @Decalage = (@Max - @Min + 1) + @Min -- Donc cela donne de combien il
faut augmenter la plus petite valeur pour obtenir la prochaine valeur
utilisable
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id+@Decalage,Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Donc on copie les données en ajoutant cette valeur de décalage à chaque
valeur Budget_id existante ce qui donne bien de nouvelles valeurs non encore
utilisées...
Merci Med,
J'ai adapté ma rêquete par rapport à ta solution.
Mais, je voulais que le 1805 soit dans une variable pour automatiser le
traitement: "SELECT Budget_Id=IDENTITY(INT, @Decalage, 1)". :/
A+ ;-)
Med Bouchenafa avait écrit le 25.11.2009 :Tu calcules la prochaine valeur par un MAX et tu passes par une table
temporaire
SELECT Budget_Id=IDENTITY(INT, 1805, 1), Client_Id=Client_Id,
Designation='Budget 2010', Annee 10, Montant=Montant
INTO #Budget
FROM Budget
INSERT INTO Budget SELECT * FROM #Budget
Bien cordialement
Med Bouchenafa
"EmanuelL" wrote in message
news:Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois
récupérer le dernier enregistrement (MAX(Budget_Id), par exemple) et
pouvoir l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Merci Med,
J'ai adapté ma rêquete par rapport à ta solution.
Mais, je voulais que le 1805 soit dans une variable pour automatiser le
traitement: "SELECT Budget_Id=IDENTITY(INT, @Decalage, 1)". :/
A+ ;-)
Med Bouchenafa avait écrit le 25.11.2009 :
Tu calcules la prochaine valeur par un MAX et tu passes par une table
temporaire
SELECT Budget_Id=IDENTITY(INT, 1805, 1), Client_Id=Client_Id,
Designation='Budget 2010', Annee 10, Montant=Montant
INTO #Budget
FROM Budget
INSERT INTO Budget SELECT * FROM #Budget
Bien cordialement
Med Bouchenafa
"EmanuelL" <support@_nopop_fiduconsult.com> wrote in message
news:mn.c3a87d9b76f5add9.10594@nopopfiduconsult.com...
Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois
récupérer le dernier enregistrement (MAX(Budget_Id), par exemple) et
pouvoir l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Merci Med,
J'ai adapté ma rêquete par rapport à ta solution.
Mais, je voulais que le 1805 soit dans une variable pour automatiser le
traitement: "SELECT Budget_Id=IDENTITY(INT, @Decalage, 1)". :/
A+ ;-)
Med Bouchenafa avait écrit le 25.11.2009 :Tu calcules la prochaine valeur par un MAX et tu passes par une table
temporaire
SELECT Budget_Id=IDENTITY(INT, 1805, 1), Client_Id=Client_Id,
Designation='Budget 2010', Annee 10, Montant=Montant
INTO #Budget
FROM Budget
INSERT INTO Budget SELECT * FROM #Budget
Bien cordialement
Med Bouchenafa
"EmanuelL" wrote in message
news:Bonjour à Tous,
J'ai une table Budget dont "Budget_Id" est un PK non
auto-incrémentiel:'(, j'aimerai insérer les budgets 2010 qui sont les
mêmes que de 2009.
Table Budget:
Budget_Id Client_Id Designation Annee Montant
1798 3100259 Budget 2009 6500
1799 2300200 Budget 2009 300
1800 2300201 Budget 2009 2100
1801 3100261 Budget 2009 5000
1802 4100656 Budget 2009 1500
1803 2300202 Budget 2009 3000
1804 4100655 Budget 2009 500
Etant donnée que "Budget_Id" n'est pas auto-incrémentiel, je dois
récupérer le dernier enregistrement (MAX(Budget_Id), par exemple) et
pouvoir l'incrémenter de 1 :-Z avant de l'insérer dans la table...
Une idée (qui ne fonctionne pas!):
INSERT INTO Budget (Budget_Id, Client_Id, Designation, Annee, Montant)
SELECT Budget_Id, Client_Id, 'Budget 2010', 2010, Montant
FROM Budget WHERE Budget_Id IN
(SELECT Budget_Id FROM Budget
WHERE Annee = 2009 AND Montant IS NOT NULL)
Question:
Comment faire pour incrémenter automatiquement "Budget_Id" avant
l'insertion d'une nouvelle ligne?
PS : Je ne peux pas modifier le structure de cette table. >:|
Merci d'avance. ;-)
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
--
*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org