Sql server ,πολλαπλασιασμος στοιχειων!!!

kos6101991 | Παρ, 06/03/2011 - 10:54 | 1' | 1

Γεια σας παιδια.εχω ξεκινησει εδς κ 2-3 μηνες να ασχολουμε με βασεις ηθελα ν ρωτησω αν (μπορει καποιος ν με καθοδηγησει ) μπορω να πολλαπλασιασω ενα κελι μιας στηλης με ενα αλλο δλδ ν δουλεψω σε γραμμες .τι εννοω...??αν για παραδειγμα θελω να βρω τν μεσο ορο καποιας αγορας κα στν μια στηλη εχει τν ποσοτητα τ προιοντος κα στν αλλη τν τιμη......

Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Είτε θα πάρεις το αποτέλεσμα με κάποια πράξη ανάμεσα στα κελιά που περιέχουν τα δεδομένα που θέλεις είτε θα βάλεις την ίδια την sql να κάνει την πράξη με κάποια aggregate function της.
π.χ.
1ος τρόπος: SELECT (κελί1/κελί2*καλί3) FROM πίνακας...
2ος τρόπος: SELECT avg(κελί1,κελί2) FROM πίνακας...

Στα συν του πρώτου τρόπου οτι μπορείς να κάνεις πάρα πολλούς συνδυασμούς πράξεων, κελιών κ.λ.π.
Στα μείον οτι πρέπει να είσαι προσεκτικός με τις πράξεις που κάνεις και τα κελιά που δηλώνεις, ώστε να μην έχεις άσχετα αποτελέσματα.

Με τον δεύτερο τρόπο είσαι πιο ήσυχος μιας και η πιθανότητα να φέρει λάθος αποτελέσματα μια "built in" function είνναι σχεδόν εκμηδενισμένη.
Στα μείον οτι δεν μπορείς να κάνεις πολλές πράξεις και με πολλά κελιά.
Εκτός κι αν αρχίσεις τα SELECT μέσα σε SELECT. Πράγμα που επιβαρύνει πολλή την βάση όσον  αφορά το execution time και φυσικά είναι πιο εύκολο να κάνεις κάποιο λάθος.

Στα μείον και των δύο τρόπων οτι παίζει πολύ μεγαλο ρόλο ο τύπος του κελιού.
float με int με double με currency  κ.λ.π. μπορεί να δημιουργήσουν προβλήματα και παλαβές διαφορές στα αποτελέσματα.
Επίσης σε όλες τις βάσεις υπάρχει λίγο-πολύ πρόβλημα στρογγυλοποίησης.
Ειδικά αν δεν είναι κατάλληλο το data type του κελιού.