freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Πρόβλημα με dsum συνάρτηση


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
theokoletsis


Μέλος από: 21 Νοε 2007
Μηνύματα: 12

View users profile
ΜήνυμαΣτις: 06 Φεβ 2009 22:52    Θέμα: Πρόβλημα με dsum συνάρτηση Απάντηση με παράθεση  Mark this post and the followings unread

Εχω τον εξής πίνακα

code Ποσο
001 10
001 15
001 20
002 5
002 20
002 10

Και θέλω προοδευτικά σύνολα ανα code:

code Ποσό
001 10
001 25
001 45
002 5
002 25
002 35

Πώς μπορεί να γίνει χρησιμοποιώντας την dsum σε access query?
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 07 Φεβ 2009 00:51    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Με τα πεδία που έχεις (και το παράδειγμα που δίνεις) δεν μπορεί να γίνει με την dsum (χωρίς κώδικα), αλλά μπορεί να γίνει με κώδικα (χωρίς την dsum). Το πιο απλό που έχω να προτείνω είναι το εξής:

Φτιάξε ένα module και βάλε:
κώδικας:
Option Explicit

Private tempStr As String
Private tempValue As Long

Public Function RunningSum(ByVal pStr As String, pValue As Long) As Long
    If (pStr = tempStr) Then
        tempValue = tempValue + pValue
    Else
        tempStr = pStr
        tempValue = pValue
    End If
    RunningSum = tempValue
End Function


και μετά φτιάξε ένα query (που να χρησιμοποιεί τον προηγούμενο κώδικα) του στύλ:
κώδικας:
SELECT code, poso, RunningSum(code ,poso) FROM myTable


Αν τα δεδομένα σου έρχονται ταξινομημένα ως προς code αυτό που έχεις είναι αρκετό, αλλιώς θα πρέπει πριν τρέξεις το query να αρχικοποιήσεις τις μεταβλητές που χρησιμοποιούνται από τον κώδικα. Bάζεις δηλαδή επιπλέον στο module το
κώδικας:
Public Sub ResetRunningSum()
    tempStr = ""
    tempValue = 0
End Sub

και καλείς την ResetRunningSum()
kon73
Script Master

Μέλος από: 13 Απρ 2008
Βοηθήματα: 3
Μηνύματα: 224


View users profile Visit posters website
ΜήνυμαΣτις: 07 Φεβ 2009 10:56    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Αγαπητέ Φίλε theokoletsis,

H λύση που δίνει ο DVA_DEV είναι μέσω VBA με την οποία ως λύση πάντα προτιμώ όμως εδώ για διευκόλυνση σου αν υπάρχει UNIQUEID (Μοναδικό κλειδί στην βάση σου και υπάρχει ταξινόμηση πρώτα με το CODE και μετά με το UNIQUEID) μπορείς να χρησιμοποιήσεις και υποερωτήματα. Σου παραθέτω το λοιπόν την βάση η οποία έχει ένα ερώτημα RunSum και τον πίνακα TblCodes με τα δεδομένα του παραδείγματος σου.

Στο RunSum θα δεις είτε σε προβολή σχεδίασης είτε σε SQL VIEW ένα υποερώτημα μέσα στο ερώτημα σου το οποίο πιστεύω ότι δίνει λύση στο πρόβλημά σου.

Το λοιπόν τρέχεις το RunSum και βλέπεις τα αποτελέσματα που πιστεύω ότι θέλεις.

Φιλικά

kon73



RunningSUm.zip
 Description:
Τρέχουσα Άθροιση.

Download
 Filename:  RunningSUm.zip
 Filesize:  13.18 KB
 Downloaded:  380 Time(s)


_________________
My New Site http://www.MsAccess.gr
Free Access (VBA Code,Tutorials, Mdbs, Eclass, Eshop)
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Τώρα είναι 04 Δεκ 2016 18:20 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos