Une procédure stockée reçoit en entrée deux mois et deux années. Il s'agit
d'un intervalle de 12 mois, p.ex 5-2003 à 4-2004.
Je dois ensuite exécuter un insert paramétré à l'aide de ces variables, pour
les 12 mois (désolé le code est assez indigeste) :
EXEC ('INSERT INTO FINANZPLANMONTH (GroupByCat, Bezeichnung, Monat1, Monat2,
Monat3, Monat4, Monat5, Monat6, Monat7, Monat8, Monat9, Monat10, Monat11,
Monat12, Reihenfolge, ID_Statuskosten)
SELECT DISTINCT TOP 100 PERCENT GroupByCat,
dbo.Finanzplan.Bezeichnung,
(SELECT SUM(Betrag)
FROM FINANZPLAN
WHERE MONTH(Falligkeitsdatum) = ' + @m1 + 'AND
YEAR(Falligkeitsdatum) = ' + @y1 + ' AND FINANZPLAN.GroupByNr =
GROUPBYCAT.GroupByCat
GROUP BY FINANZPLAN.GroupByNr) AS Monat1, ...
Les variables @m1et @y1 me posent problème dans le sens où je vais devoir
calculer le changement d'année si le mois est plus grand que 12. Et comme je
suis déjà dans ma requête insert, je ne pense pas pouvoir faire de boucle ou
autre chose du style... Je pourrais calculer pour chaque insertion le mois
et l'année et stocker dans 2 variables, ce qui me ferait 24 variables en
plus, mais je ne sais pas trop comment faire pour les initialiser sans que
ça devienne une usine à gaz...
Pourriez-vous me donner un coup de pouce, svp ? Merci beaucoup !
@+
Seb
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Moreau
Je n'ai pas tres bien compris ce que tu veux faire, mais j'attire ton attention sur la fonction DateAdd qui peut t'aider.
ex: DateDebut (de type datetime) = 01/05/2003
DateAdd(m,1,DateDebut) va contenir 01/06/2003 DateDdd(m,8,DateDebut) va contenir 01/01/2004
pour en extraire le mois: month (dateadd(m,8,DateDebut))
pour année: year (dateadd(m,8,DateDebut))
bref, je pense qu'avec DateAdd, Month, Year et ta date de début tu peux faire tout ce que tu veux.
Laurent.
"sebcou" wrote in message news:3f322212$
Bonjour !
Une procédure stockée reçoit en entrée deux mois et deux années. Il s'agit d'un intervalle de 12 mois, p.ex 5-2003 à 4-2004.
Je dois ensuite exécuter un insert paramétré à l'aide de ces variables,
pour
les 12 mois (désolé le code est assez indigeste) :
EXEC ('INSERT INTO FINANZPLANMONTH (GroupByCat, Bezeichnung, Monat1,
Monat2,
Monat3, Monat4, Monat5, Monat6, Monat7, Monat8, Monat9, Monat10, Monat11, Monat12, Reihenfolge, ID_Statuskosten) SELECT DISTINCT TOP 100 PERCENT GroupByCat, dbo.Finanzplan.Bezeichnung, (SELECT SUM(Betrag) FROM FINANZPLAN WHERE MONTH(Falligkeitsdatum) = ' + @m1 + 'AND YEAR(Falligkeitsdatum) = ' + @y1 + ' AND FINANZPLAN.GroupByNr > GROUPBYCAT.GroupByCat GROUP BY FINANZPLAN.GroupByNr) AS Monat1, ...
Les variables @m1et @y1 me posent problème dans le sens où je vais devoir calculer le changement d'année si le mois est plus grand que 12. Et comme
je
suis déjà dans ma requête insert, je ne pense pas pouvoir faire de boucle
ou
autre chose du style... Je pourrais calculer pour chaque insertion le mois et l'année et stocker dans 2 variables, ce qui me ferait 24 variables en plus, mais je ne sais pas trop comment faire pour les initialiser sans que ça devienne une usine à gaz...
Pourriez-vous me donner un coup de pouce, svp ? Merci beaucoup ! @+ Seb
Je n'ai pas tres bien compris ce que tu veux faire, mais j'attire ton
attention sur la fonction DateAdd qui peut t'aider.
ex:
DateDebut (de type datetime) = 01/05/2003
DateAdd(m,1,DateDebut) va contenir 01/06/2003
DateDdd(m,8,DateDebut) va contenir 01/01/2004
pour en extraire le mois:
month (dateadd(m,8,DateDebut))
pour année:
year (dateadd(m,8,DateDebut))
bref, je pense qu'avec DateAdd, Month, Year et ta date de début tu peux
faire tout ce que tu veux.
Laurent.
"sebcou" <client@serveur.com> wrote in message
news:3f322212$1_1@news.bluewin.ch...
Bonjour !
Une procédure stockée reçoit en entrée deux mois et deux années. Il s'agit
d'un intervalle de 12 mois, p.ex 5-2003 à 4-2004.
Je dois ensuite exécuter un insert paramétré à l'aide de ces variables,
pour
les 12 mois (désolé le code est assez indigeste) :
EXEC ('INSERT INTO FINANZPLANMONTH (GroupByCat, Bezeichnung, Monat1,
Monat2,
Monat3, Monat4, Monat5, Monat6, Monat7, Monat8, Monat9, Monat10, Monat11,
Monat12, Reihenfolge, ID_Statuskosten)
SELECT DISTINCT TOP 100 PERCENT GroupByCat,
dbo.Finanzplan.Bezeichnung,
(SELECT SUM(Betrag)
FROM FINANZPLAN
WHERE MONTH(Falligkeitsdatum) = ' + @m1 + 'AND
YEAR(Falligkeitsdatum) = ' + @y1 + ' AND FINANZPLAN.GroupByNr > GROUPBYCAT.GroupByCat
GROUP BY FINANZPLAN.GroupByNr) AS Monat1, ...
Les variables @m1et @y1 me posent problème dans le sens où je vais devoir
calculer le changement d'année si le mois est plus grand que 12. Et comme
je
suis déjà dans ma requête insert, je ne pense pas pouvoir faire de boucle
ou
autre chose du style... Je pourrais calculer pour chaque insertion le mois
et l'année et stocker dans 2 variables, ce qui me ferait 24 variables en
plus, mais je ne sais pas trop comment faire pour les initialiser sans que
ça devienne une usine à gaz...
Pourriez-vous me donner un coup de pouce, svp ? Merci beaucoup !
@+
Seb
Je n'ai pas tres bien compris ce que tu veux faire, mais j'attire ton attention sur la fonction DateAdd qui peut t'aider.
ex: DateDebut (de type datetime) = 01/05/2003
DateAdd(m,1,DateDebut) va contenir 01/06/2003 DateDdd(m,8,DateDebut) va contenir 01/01/2004
pour en extraire le mois: month (dateadd(m,8,DateDebut))
pour année: year (dateadd(m,8,DateDebut))
bref, je pense qu'avec DateAdd, Month, Year et ta date de début tu peux faire tout ce que tu veux.
Laurent.
"sebcou" wrote in message news:3f322212$
Bonjour !
Une procédure stockée reçoit en entrée deux mois et deux années. Il s'agit d'un intervalle de 12 mois, p.ex 5-2003 à 4-2004.
Je dois ensuite exécuter un insert paramétré à l'aide de ces variables,
pour
les 12 mois (désolé le code est assez indigeste) :
EXEC ('INSERT INTO FINANZPLANMONTH (GroupByCat, Bezeichnung, Monat1,
Monat2,
Monat3, Monat4, Monat5, Monat6, Monat7, Monat8, Monat9, Monat10, Monat11, Monat12, Reihenfolge, ID_Statuskosten) SELECT DISTINCT TOP 100 PERCENT GroupByCat, dbo.Finanzplan.Bezeichnung, (SELECT SUM(Betrag) FROM FINANZPLAN WHERE MONTH(Falligkeitsdatum) = ' + @m1 + 'AND YEAR(Falligkeitsdatum) = ' + @y1 + ' AND FINANZPLAN.GroupByNr > GROUPBYCAT.GroupByCat GROUP BY FINANZPLAN.GroupByNr) AS Monat1, ...
Les variables @m1et @y1 me posent problème dans le sens où je vais devoir calculer le changement d'année si le mois est plus grand que 12. Et comme
je
suis déjà dans ma requête insert, je ne pense pas pouvoir faire de boucle
ou
autre chose du style... Je pourrais calculer pour chaque insertion le mois et l'année et stocker dans 2 variables, ce qui me ferait 24 variables en plus, mais je ne sais pas trop comment faire pour les initialiser sans que ça devienne une usine à gaz...
Pourriez-vous me donner un coup de pouce, svp ? Merci beaucoup ! @+ Seb
sebcou
Salut !
Merci, ça parait tellement simple, mais je sais pas pourquoi je n'y ai pas pensé tout seul. @+ Seb
"Laurent Moreau" a écrit dans le message de news: bgtg8j$usm$
Je n'ai pas tres bien compris ce que tu veux faire, mais j'attire ton attention sur la fonction DateAdd qui peut t'aider.
Salut !
Merci, ça parait tellement simple, mais je sais pas pourquoi je n'y ai pas
pensé tout seul.
@+
Seb
"Laurent Moreau" <l.moreau@systonic.fr> a écrit dans le message de news:
bgtg8j$usm$1@s1.read.news.oleane.net...
Je n'ai pas tres bien compris ce que tu veux faire, mais j'attire ton
attention sur la fonction DateAdd qui peut t'aider.