antio Δημοσ. 13 Μαρτίου 2006 Δημοσ. 13 Μαρτίου 2006 Γειά σας. Εχω ενα πίνακα που αποτελέιται απο δυο στήλες. Η μία ονοματεπώνυμο (1200 περίπου ονόματα) και η αλλη τα αντίστοιχα χρηματικά ποσά τους. Σήμερα δημιούργησα αλλον ενα πινακα με τις ιδιες στήλες , όπου στην στήλη με τα ονοματεπώνυμο εχω καποια ονόματα κοινά με τον πρώτο πίνακα και κάποια καινούρια. Υπάρχει τρόπος να "ενώσω" τους δυο πίνακες σε μια λιστα ετσι ώστε τα διπλα ονόματα να φαίνονται σαν ενα και ταυτόχρονα να αθροίζονται τα δύο ποσά και φυσικά να εμφανίζονται και τα νεα ονόματα στη λίστα? Ευχαριστώ.
nikosdimos Δημοσ. 13 Μαρτίου 2006 Δημοσ. 13 Μαρτίου 2006 Δεν ξέρω κατα πόσο γίνεται αυτό που ζητάς... αλλά γιατί δημιούργησες έναν καινούργιο πίνακα με τις ίδιες εγγραφές + καποιες ακόμα αφού είχες ήδη έναν που θα μπορούσες να συμπληρώσεις;
xamenos121 Δημοσ. 13 Μαρτίου 2006 Δημοσ. 13 Μαρτίου 2006 mporis na kanis ena query na epilegei apo tous 2 pinakes ta koina onomata kai na athrizei ta antoixa posa kai meta tha ta kataxwras se ena kainourgio pinaka....
antio Δημοσ. 13 Μαρτίου 2006 Μέλος Δημοσ. 13 Μαρτίου 2006 Φιλε nikosdimos τον πίνακα δεν το δημιούργησα εγώ,αλλα μου τον εδωσε συνάδελφος σε μορφή excell. Φίλε xamenos121 επειδή ειμαι καινουριος με την acceess , μηπως μπορεις να μου πεις πως να κανω το ερώτημα που θα επιλέγει τα κοινά ονόματα?? Αν γίνει αυτο τότε με ερ'ωτημα προσάρτησης θα μπορούσα να προσθέσω και τα υπόλοιπα διαφορετικά ονόματα???
vagpap Δημοσ. 13 Μαρτίου 2006 Δημοσ. 13 Μαρτίου 2006 Έστω ότι οι δύο πίνακές σου έχουν ονόματα Table1 & Table2 και τα πεδία που μας ενδιαφέρουν έχουν ονόματα Name, Amount και στους δύο πίνακες. Χρησιμοποίησε το παρακάτω query: > SELECT TABLE1.NAME, iif(isnull(table1.AMOUNT), 0, table1.AMOUNT) + iif(isnull(table2.AMOUNT), 0, table2.AMOUNT) AS TotalAmount FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.NAME = TABLE2.NAME; Θα σου βγάλει όλα τα ονόματα από τον Table1 και το ποσό τους, ενώ σε όσα ονόματα έχουν εγγραφή και στον Table2 θα σου βγάλει το άθροισμά τους.
antio Δημοσ. 14 Μαρτίου 2006 Μέλος Δημοσ. 14 Μαρτίου 2006 file vagpap mou bgazei minima lathos syntaxis,kai epeidi apo sql den gnorizo den mporo na diorthoso to syntaktiko lathos . Ostoso thanks.
koYkoY_koYkoY Δημοσ. 14 Μαρτίου 2006 Δημοσ. 14 Μαρτίου 2006 Μπορείς ίσως εύκολα να το κάνεις με ένα ερώτημα διπλοτύπων ή αλλιώτικα μπορείς να συμπεριλάβεις τον παρακάτω κώδικα σε ένα κουμπί εντολής που θα βρίσκεται σε μία φόρμα. tblOld=το όνομα του παλιού πίνακα με πεδία [NameOld] και [AmmountOld] tblNew=το όνομα του καινούριου πίνακα με το πεδίο [NameNew] που είναι το 'PrimaryKey' και το πεδίο [AmmountNew] Dim dbs As Database Dim rstOld As Recordset Dim rstNew As Recordset Set dbs=CurrentDb Set rstOld=dbs.OpenRecordset("tblOld") Set rstNew=dbs.OpenRecordset("tblNew") If Not rstOld.Bof Then rstOld.MoveFirst End If If Not rstOld.Eof Then rstOld.MoveLast End If Dim lngOldRecords As Long lngOldRecords=rstOld.RecordsCount Dim intStart As Integer If Not rstOld.Bof Then rstOld.MoveFirst End If For intStart=1 To lngOldRecords Dim strName As String strName=rstOld!NameOld Dim lngAmmount As Long lngAmmount=rstOld!AmmountOld If Not rstNew.Eof then rstNew.MoveLast End If If Not rstNew.Bof then rstNew.MoveFirst End If rstNew.Index="PrimaryKey" rstNew.Seek "=", strName If rstNew.NoMatch=True Then rstNew.AddNew rstNew!NameNew=strNameOld rstNew!AmmountNew=lngAmmountOld rstNew.Update Else rstNew.Edit rstNew!AmmountNew=(rstNew!AmmountNew) + lngAmmountOld rstNew.Update End If rstOld.MoveNext rstOld.Close rstNew.Close Σ' αυτό το σημείο - εκτός απροόπτου και ορθογραφίας - στο νεότερο πίνακα θα υπάρχουν όλες οι εγγραφές όπως τις θέλεις. Η φόρμα και ο παλιός πίνακας δεν χρειάζονται πια. Αν πρόκειται για πολλά ονόματα αξίζει η προσπάθεια!
antio Δημοσ. 15 Μαρτίου 2006 Μέλος Δημοσ. 15 Μαρτίου 2006 ok koykoy elysa to problima moy merikos me erotima diplotypon ,afoy prota perasa tis eggrafes moy se ena pinaka,stin synexeia frika ta dipla onomata me ta posa toys.... Tora to pos tha athroiso ta posa ... tha to skefto.... toylaxiston ta dipla onomata einai dipla-dipla.
koYkoY_koYkoY Δημοσ. 15 Μαρτίου 2006 Δημοσ. 15 Μαρτίου 2006 Σε προβολή sql γράψε το ερώτητα και αποθήκευσέ το με όνομα AllNames. SELECT Name FROM tblNew UNION SELECT Name FROM tblOld; κατόπιν γράψε το τελικό ερώτημα SELECT AllNames.Name, tblOld.Ammount, tblNew.Ammount, [tblOld.Ammount]+[tblNew.Ammount] AS AmmountTotal FROM (AllNames LEFT JOIN tblOld ON AllNames.Name = tblOld.Name) LEFT JOIN tblNew ON AllNames.Name = tblNew.Name;
antio Δημοσ. 19 Μαρτίου 2006 Μέλος Δημοσ. 19 Μαρτίου 2006 koykoy o pinakas allnames dimioyrgithike (profanos perilambanontai ola ta koina onomata), alla to teliko erotima tpt,(minima syntaktikoy lathoys)...
antio Δημοσ. 19 Μαρτίου 2006 Μέλος Δημοσ. 19 Μαρτίου 2006 koykoy o pinakas allnames dimioyrgithike (profanos perilambanontai ola ta koina onomata), alla to teliko erotima tpt,(minima syntaktikoy lathoys)...
koYkoY_koYkoY Δημοσ. 19 Μαρτίου 2006 Δημοσ. 19 Μαρτίου 2006 Ας το κάνουμε πάλι! Ερώτημα AllNames: SELECT NameNew As Name, AmmountNew As Ammount FROM tblNew UNION SELECT NameOld As Name, AmmountOld As Ammount FROM tblOld; Τελικό ερώτημα: SELECT AllNames.Name, Sum(AllNames.Ammount) AS ΆθροισμαΤουAmmount FROM AllNames GROUP BY AllNames.Name;
koYkoY_koYkoY Δημοσ. 19 Μαρτίου 2006 Δημοσ. 19 Μαρτίου 2006 Ας το κάνουμε πάλι! Ερώτημα AllNames: SELECT NameNew As Name, AmmountNew As Ammount FROM tblNew UNION SELECT NameOld As Name, AmmountOld As Ammount FROM tblOld; Τελικό ερώτημα: SELECT AllNames.Name, Sum(AllNames.Ammount) AS ΆθροισμαΤουAmmount FROM AllNames GROUP BY AllNames.Name;
antio Δημοσ. 19 Μαρτίου 2006 Μέλος Δημοσ. 19 Μαρτίου 2006 koykoy eisia prwtos ayto einai...... na se kala thanks se oloys paidia gia tin prospatheia
antio Δημοσ. 19 Μαρτίου 2006 Μέλος Δημοσ. 19 Μαρτίου 2006 koykoy eisia prwtos ayto einai...... na se kala thanks se oloys paidia gia tin prospatheia
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.