Bonjour,
J'ai une table avec des objets qui font un certains poids en gramme, je dois les ranger dans des contenants qui ne peuvent pas dépasser 14000 g en fonction de la colonne "SEPA".
J'ai donc penser à faire :
le problème c'est qu'il y a un décalage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select CLE_TAB, T1.POIDS, T1.SEPA,DENSE_RANK() over (order by CLE_PROD,SEPA,NS) [NS] , SUM(cast(POIDS as int)) over(partition by SEPA,NS ORDER by (CLE_TAB)) as PNS,SOMME from (select CLE_PROD,CLE_TAB, TAB_TRAV.POIDS, TAB_TRAV.SEPA, SUM(cast(POIDS as int)) over(partition by SEPA ORDER by (CLE_TAB))/14000 as [NS], (SUM(cast(POIDS as int)) over(partition by SEPA ORDER by (CLE_TAB)))[SOMME] from TAB_TRAV where CLE_PROD = 16) as T1
18442 | 210 | 06 | 7 | 13860 | 13860
18443 | 210 | 06 | 8 | 210 | 14070
18444 | 210 | 06 | 8 | 420 | 14280
18445 | 210 | 06 | 8 | 630 | 14490
[...]
18504 | 210 | 06 | 8 | 13020 | 26880
18505 | 210 | 06 | 8 | 13230 | 27090
18506 | 210 | 06 | 8 | 13440 | 27300
18507 | 210 | 06 | 8 | 13650 | 27510
18508 | 210 | 06 | 8 | 13860 | 27720
18509 | 210 | 06 | 8 | 14070 | 27930
18510 | 210 | 06 | 9 | 210 | 28140
18511 | 210 | 06 | 9 | 420 | 28350
18512 | 210 | 06 | 9 | 630 | 28560
18513 | 210 | 06 | 9 | 840 | 28770
J'aurais aimé savoir si il n'y avais pas moyen de faire un sum over partition qui repart à zéro à un entier donné ?
voici le code de ma table :
Désolé si je ne suis pas très clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 CREATE TABLE [dbo].[TAB_TRAV]( [CLE_TAB] [int] IDENTITY(1,1) NOT NULL, [CLE_PROD] [int] NULL, [CLE_PROD_ASSEMBLAGE] [int] NULL, [CLE_RETOUR] [char](50) NULL, [NOM] [char](100) NULL, [ADR2] [char](100) NULL, [ADR3] [char](100) NULL, [ADR4] [char](100) NULL, [ADR5] [char](100) NULL, [CPIN] [char](5) NULL, [COMMUNE] [char](100) NULL, [TEL] [char](10) NULL, [COURRIEL] [char](500) NULL, [CEDEX] [bit] NULL, [POIDS] [char](10) NULL, [CPOUT] [char](5) NULL, [CPVALID] [bit] NULL, [TRAITE] [bit] NULL, [TRAITEP] [bit] NULL, [CLE_CDX] [char](8) NULL, [CLE_CDXT] [char](8) NULL, [CLE_CP] [char](5) NULL, [CLE_CPT] [char](5) NULL, [CLE_DD] [char](5) NULL, [CLE_DDT] [char](5) NULL, [CLE_TF] [char](5) NULL, [CLE_TFT] [char](5) NULL, [CLE_ZONE] [char](10) NULL, [CLE_ZONET] [char](10) NULL, [POIDSL] [int] NULL, [NBL] [int] NULL, [TYPESEPA] [int] NULL, [SEPA] [char](7) NULL, [MAXL] [int] NULL, [MINL] [int] NULL, [NS] [int] NULL, [PNS] [int] NULL, [NNS] [int] NULL, [NL] [int] NULL, [PNL] [int] NULL, [NNL] [int] NULL, [NBADR] [int] NULL, [LIA] [int] NULL, [CONTENANT] [int] NULL, [PRESENTATION] [int] NULL, [TRAITEMANT] [int] NULL, [ZONE] [int] NULL, [CPDEB] [char](5) NULL, [CPFIN] [char](5) NULL, [LIGNEDD] [char](32) NULL, [CODE_TRAIT_SERV] [char](3) NULL, [TRACE] [bit] NULL, CONSTRAINT [PK_TAB_TRAV] PRIMARY KEY CLUSTERED ( [CLE_TAB] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Merci d'avance
Partager