Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : additionner deux enregistrement d'une meme table [ SQL Server, MSDE, SQL Express / Débutant(s) ] (Raul duke)

vendredi 6 avril 2007 à 10:11:17 | additionner deux enregistrement d'une meme table

Raul duke

bonjour,

voila, je dispose d'une table contenat des enregistrement du type (Date/famille/ssFamille/compteur1/compteur2).

ex.:
ID    -DATE          -FAMILLE   -SSFAMILLE   -Cpt1   -Cpt2
 1     06/04/2007    Fam1               SSfam1            12         24
 2     05/04/2007    Fam1               SSfam1            28        20
 3     06/04/2007    Fam1               SSfam2             7         20
 4     05/04/2007    Fam1               SSfam2            81         8

j'aimerais savoir s'il est possible de creer une requete permettant ; s'il existe plusieurs enregistrement ayant des couples ( FAM/SSFam) similaires mais ayant des dates différentes;  d'additionner leurs compte vers la date la plus recente afin d'obtenir par exemple :

ID    -DATE          -FAMILLE   -SSFAMILLE   -Cpt1   -Cpt2
 1     06/04/2007    Fam1               SSfam1            40         44
 3     06/04/2007    Fam1               SSfam2            88        28



vendredi 6 avril 2007 à 10:32:08 | Re : additionner deux enregistrement d'une meme table

skweeky

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

Quelque chose de ce genre devrait faire l'affaire :

SELECT SUM(x), SUM(y), z, MAX(w)
GROUP BY z

Je regroupe tous les z communs, et fait pour chaque double (ou plus) de z la somme de x et y et je prends la valeur max de la plage pour w.

Cordialement
------------
Christian Robert - Winwise
http://blogs.developpeur.org/christian
MVP SQL Server

vendredi 6 avril 2007 à 21:43:45 | Re : additionner deux enregistrement d'une meme table

Raul duke

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE  PROCEDURE sp_SGMChangeJour AS

BEGIN

BEGIN TRANSACTION transac1

-- copie des enregistrement d'hier
-- passage de la date des copies a NuLL
-- regroupement des comptes
insert into T_FAM(FAM, SSFAM, Date, cpt1, cpt2)
select T_FAM, FAM, SSFAM, null, sum(cpt1) as CPT1, sum(cpt2) as CPT2
from T_FAM
where Date <= dateadd(day,-1, getdate())
group by  FAM, SSFAM

-- On dispose desormais des enregistrements en double
-- on efface alors les enregistrements disposant d'une date
DELETE FROM T_FAM
where T_FAM_ID in(select T_FAM_ID from T_FAM
where Date <= dateadd(day,-1, getdate()))

-- ilk nous reste a ce moment que les enregistrements a date = null ayant le compte a jour
-- et ceux d'auj'
-- maj de date nulle a hier
UPDATE T_FAM set Date = dateadd(day,-1, getdate())
where Date is null

IF @@error <> 0
 ROLLBACK TRANSACTION transac1
ELSE
 COMMIT TRANSACTION transac1

END


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

-- appel de la procédure ds vb.net
-- maCommande.CommandType = CommandType.StoredProcedure
-- maCommande.CommandText = "sp_SGMChangeJour"
-- maCommande.Connection = maConnection
-- maCommande.ExecuteNonQuery()




Cette discussion est classé dans : enregistrement, date, table, additionner, fam1


Répondre à ce message

Sujets en rapport avec ce message

Dernier enregistrement de chaque membre [ par Seb33300 ] BonjourJe cherche a récupérer le dernier enregistrement de chaque membre sur un table de la forme :TABLE(#membre, date, msg)Il fdaudrais donc ainsi po Recuperation du dernier enregistrement [ par bruce207 ] Bonjourmon probleme est le suivant : j'ai une table EMPRUNT dans laquelle se trouve le champ mat_mem qui renvoie ici le matricule du membre qui fait u Obtenir date de mise à jour [ par Toub63 ] Bonjour à tous,Est-il possible d'obtenir une date de mise à jour d'un enregistrement via une champ spécial  ou autre fonction de SQL server 2000 ?Un e Enregistrement suivant [ par Farfadh ] Je souhaite connaitre l'enregistrement suivant à partir d'un enregistrement donné selon un ordre chronologique. Le problème parait être simple, mais e probleme de requete [ par aquewel ] Voila j'ai une requete ou je voudrais comparer la date d'aujourd'hui et la date de ma base de données et voir si il y a une difference egal ou superie Requete sur champs Date [ par yanis7518 ] Salut a tous ma question est assez simple mais je ne sais pas comment faireVoila j'ai une table avec 3champs dont 1 champs date qui correspond a la da Comparaison de date!! [ par pascallgagnon ] Bonjout tlm!!Voilà, j'ai une Bd access avec une table étudiant, une table cours et une table résultat qui est une table d'intersection entre les 2.Je Comparaison de date!! [ par pascallgagnon ] Bonjout tlm!!Voilà, j'ai une Bd access avec une table étudiant, une table cours et une table résultat qui est une table d'intersection entre les 2.Je primary key sur type date [ par stefff01 ] Bonjour, J'aimerais mettre une clé primaire sur une table "historique" composée d'un numéro vers une autre table ainsi que d'une date. Le but serait d Supprimer les meme enregistrement (valeurs) dans une table [ par facilus ] Bonjour,j'ai une table qui contient des données répéter, quel commande sql supprime toute les repetition et laisse qu'un enregistrement pour une ligne


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.