Petrakas Δημοσ. 29 Σεπτεμβρίου 2006 Δημοσ. 29 Σεπτεμβρίου 2006 καλησπέρα , Έστω οτι έχω τρεις πίνακες : Table 1(sum1) Table 2(sum2) Table 3(sum3) To sql ερώτημα είναι : SELECT ([sum1]+[sum2]+[sum3]) AS total_sum FROM Table1,Table2,TAble3; αν υπόθεσουμε πως sum1=100 , sum2=200 kai sum3=100 τότε total_sum=400 ... Αν όμως το sum2 πχ δεν έχει τιμή (είναι null δηλαδή ούτε καν μηδέν) το ερώτημα δεν εκτελείται(εκτελείται αλλα δεν βγάζει αποτέλεσμα)....πως θα χειριστώ αυτές τις null τιμές?? πχ στη ν περίπτωση που το sum2 δεν έχει τιμή θέλω να μου βγαίνει οτι totalsum=200 πως....????!
koYkoY_koYkoY Δημοσ. 29 Σεπτεμβρίου 2006 Δημοσ. 29 Σεπτεμβρίου 2006 Μπορείς να χρησιμοποιήσεις είτε τη συνάρτηση Nz([sum]) είτε τη συνάρτηση IIF(IsNull([sum]); 0; [sum])
Petrakas Δημοσ. 29 Σεπτεμβρίου 2006 Μέλος Δημοσ. 29 Σεπτεμβρίου 2006 συνάρτηση?? χμ...βασικά που συντάσονται? στο SELECT ? κάποιο παράδειγμα σύνταξης μπορεις να παραθέσεις με βάσξ το παραπάνω παράδειγμα πινάκων πεδίων που έχω γράψει?
random Δημοσ. 30 Σεπτεμβρίου 2006 Δημοσ. 30 Σεπτεμβρίου 2006 >SELECT NZ(sum1,0) + NZ(sum2,0) + NZ(sum3,0) AS total_sum FROM Table1,Table2,TAble3;
Petrakas Δημοσ. 3 Οκτωβρίου 2006 Μέλος Δημοσ. 3 Οκτωβρίου 2006 ο κώδικας που μου παραθέτεις φίλε random βγάζει ως αποτέλεσμα για sum1=100 sum2=0 και sum3=200 : '100200' εγώ θέλω να τα αθροίζει ....δλδ να βγάζει ως αποτέλεσμα '300'
random Δημοσ. 3 Οκτωβρίου 2006 Δημοσ. 3 Οκτωβρίου 2006 και που να ξερουμε οτι αποθηκεύεις αριθμούς σε πεδια text? SELECT CLng(Nz( a,0))+ CLng(Nz( b,0))+ CLng(Nz( c,0) ) AS Expr1 FROM... μονο ενα record εχουν οι πινακες; ισως θελει και join. next week that tutorial υπαρχει και το f1 στην access. εντελώς magic button.
Petrakas Δημοσ. 3 Οκτωβρίου 2006 Μέλος Δημοσ. 3 Οκτωβρίου 2006 xm..! stin basi moy den ta exo se text morfi...alla se mia dokimastiki poy eftiaksa to ksexasa,... sry exeis dikio! pao n to dokimaso!
Petrakas Δημοσ. 3 Οκτωβρίου 2006 Μέλος Δημοσ. 3 Οκτωβρίου 2006 kai pal iden moy doyleyei... otan to pedio sum2 ston pinaka Table2 den exei timi (dld o pinakas den exei egrafes) den moy emfanizei to sinoliko sum...
random Δημοσ. 4 Οκτωβρίου 2006 Δημοσ. 4 Οκτωβρίου 2006 ε ναι, αλλο να υπάρχει ενα record με τιμη null se ena pedio, και αλλο να μην υπάρχει record. το λεει και η λεξη.. SELECT αυτό απο εκέι.. αν δεν υπάρχει τιποτα δεν θα φέρει. και η Nz(), λέει... φέρε μου το χ, και θα στο επιστρέψω, και αν αυτο ειναι null, θα επιστρέψω Ψ, (εδώ μηδέν) αν δεν εχεις Χ να τις δώσεις, δεν παίζει. ... τεσπα. οι πινακες σου ειναι τουλαχιστον περίεργοι. 1. γιατι να εχεις τρεις, και οχι εναν με 3 πεδία? 2. ή ένας πινακας, με 2 πεδία (pk, και sum) και 3 εγγραφές. 3. αν ειναι απαραιτητο να ειναι 3 πινακες, γιατι να εχουν ενα πεδιο ο καθενας, και όχι περισσότερα? (πχ ενα primary key, εκτος απο το sum) αν κανεις ενα απο τα 3, δεν θα εχεις προβλημα. στο κατω, κατω για να αποθηκευεις 3 νουμερα δεν χρειάζεσαι καν database. βαλτα σε ενα text file, ξεχνα την sql, και πιασε την vb.
Petrakas Δημοσ. 4 Οκτωβρίου 2006 Μέλος Δημοσ. 4 Οκτωβρίου 2006 opa ena ena...... 1)katarxin to pardigma me ta tables eian eina aplo paradigma...i kanoniki vasi exei polous pinakes me diaforetika pedia o kahtenas (kai arithmo kai eidos) kai mono to sum einai koino....vasika einai eidi parastatikon.... 2) otan enousa null sto sum sinepagete oti den tha ypirxe antistixo record se ayto ton pinaka ontos denj to diatiposa entelos sosta alla to to pano paradigma ayto edeixne! 3)gia an sas doso na katalavete ligo pio sigkekrimena to provlima....: Yparxei enas pinakas "promitheytes" o opios einai ena pros polla me alous 7 pinakes....o kathe pinakas antiprosopeyei ena parastatiko... Etsi enas promitheytis mporei na exei timologia (xreoseis) kai epitages ,gramatia (pistoseis) alla oxi egrafes se metrita ...(opoy timologia--->pinakas, epitages--->pinakas ktl ktl...)alla enas alos mporei na toy exoume dosei kai metrita....pos tha vro to upolipo loipon ayrton to prom??? me auroisma ton sinolikon sum toy kathe pinaka...alla ean enas prom d3en exei se ena pnaka egrafes( pragma pithano) tote den bgenei ypoloipo... min ta polilogo..to pano paradeigma einai poli aploiko alla kai antiprosopeytiko tou provlimatos poy thelo na liso....den thelo na alaksei omos i diataksi ton pinakoon gaiti stin vasi poy to tha to efarmoso den einai toso apla ta pragamta!
sotospez Δημοσ. 4 Οκτωβρίου 2006 Δημοσ. 4 Οκτωβρίου 2006 giati SQL milas an einai gia SQL 2000 SELECT (isnull(sum1,0)]+isnull(sum2,0)+isnull(sum3,0)) AS total_sum FROM Table1,Table2,TAble3; an einai oracle tote einai to NVL i to NVL2 oracle 9 +
random Δημοσ. 8 Οκτωβρίου 2006 Δημοσ. 8 Οκτωβρίου 2006 τοτε, πρεπει να αλλαξεις τα where, και οχι τα sums. πρεπει να κανεις LEFT JOINs se Access (pinakas Pelates εναντι 4 πινακων παραστατικων) : > SELECT Customers.CustomerID, Customers.CompanyName, Sum(EPITAGES.POSO) AS [sum Of EPITAGES_POSO], Sum(GRAMMATIA.POSO) AS [sum Of GRAMMATIA_POSO], Sum(METRHTA.POSO) AS [sum Of METRHTA_POSO], Sum(TIMOLOGIA.POSO) AS [sum Of TIMOLOGIA_POSO] FROM ( ( (Customers LEFT JOIN GRAMMATIA ON Customers.CustomerID = GRAMMATIA.CustomerID) LEFT JOIN METRHTA ON Customers.CustomerID = METRHTA.CustomerID) LEFT JOIN TIMOLOGIA ON Customers.CustomerID = TIMOLOGIA.CustomerID) LEFT JOIN EPITAGES ON Customers.CustomerID = EPITAGES.CustomerID GROUP BY Customers.CustomerID, Customers.CompanyName; αποτέλεσμα: > id name ..... |Σ.επιταγες| Σ.γραμμ |Σ.μετρητα | Σ.τιμολογια 1 Ααααα |1000 | | 50 | 600 2 Ββββββ | 10 | 500 | 100 | . . για το σύνολο.. των συνολων για καθε πελατη, βαλε παλι σε δράση την NZ(x,0) > SELECT Customers.CustomerID, Customers.CompanyName, NZ( Sum(EPITAGES.POSO) , 0)+ NZ( Sum(GRAMMATIA.POSO) , 0)+ NZ( Sum(METRHTA.POSO) , 0)+ NZ( Sum(TIMOLOGIA.POSO) , 0) AS [TOTAL OF ALL SUMS] FROM .... κλπ,κλπ αποτέλεσμα: > id name ..... | Sum of All Fears 1 Ααααα | 1650 2 Ββββββ | 610 . . για ειμαστε και σωστοι και λογιστικά, μαλλον θα βαλεις αρνητικό πρόσημο στις πιστώσεις, και θετικο στις χρεώσεις (ή αντίστροφα), για να μην σας πάνε και μέσα :) :) εγω έδειξα το προγραμματιστικό της database. για τα υπόλοιπα στο.... λογιστες.gr
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.