Προς το περιεχόμενο

ερωτηση περι update kai if else se SQL μέσα απο access


aGka8l

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα, θελω να αλλάξω την παρακάτω εντολή σε if else

 

>UPDATE Πελάτης INNER JOIN ([βάση τίτλων] INNER JOIN Ενοικίαση ON [βάση τίτλων].[id τίτλου] = Ενοικίαση.[id τίτλου]) ON Πελάτης.ΑρΤαυτότητας = Ενοικίαση.Πελάτης SET Ενοικίαση.Κόστος = [τιμή]*([Ημ/νια Επιστροφής]-[Ημ/νια Ενοικιασης])
WHERE (((Ενοικίαση.[Ημ/νια Επιστροφής]) Is Not Null) AND (([Ημ/νια Επιστροφής]-[Ημ/νια Ενοικιασης])>"Διάρκεια κράτησης"));

 

ειναι για μια εφαρμογή dvd club και το ερώτημα ενημερώνει το τελικό κόστος, σε περίπτωση οπως που πχ ενα dvd ειναι 7 ημερών και κάποιος το γυρήσει στις 4 μέρες βγαίνει λαθος ο υπολογισμός

μπορει η εντολή update να γίνει κάπως με if else?

 

δλδ σαν αλγόριθμος πάει εαν η ημ/νια επιστροφής-ημ/νια ενοικιάσης ειναι >μεγαλύτερη απο αυτήν της κανονικής διαρκειας δωσε την update

αλλιώς κανε update Διάρκεια κράτησης*τιμή

 

σε ms access τρέχω την εφαρμογή

ευχαριστώ

Δημοσ.

aGka8l, καλημέρα!

κατ' αρχάς αυτο που έχω να σου πώ είναι να προσέξεις πολύ καλα το σχεδιασμό της βάσης δεδομένων. Φτιάξε αρκετούς πίνακες και πρόσεξε τις σχέσεις μεταξύ τους για να απλοποιηθεί ο προγραμματισμός μετά. Εχω φτιάξει και εγώ τέτοια εφαρμογή και γνωρίζω.

Αυτο που θα σε βοηθήσει για τους υπολογισμούς είναι να χρησιμοποιήσεις κατηγορίες ταινιών και το κόστος δεν χρειάζεται να το αποθηκεύεις στην βάση αλλά να το υπολογίζεις κατα την επιστροφή των ταινιών γνωρίζοντας :

1. την ημερομηνία ενοικίασης της κάθε ταινίας που γίνεται επιστροφή

2. την κατηγορία της

3. την τρέχουσα ημερομηνία

 

Πρέπει να βγάλεις έξω κυριακές και γιορτές (αν μπορείς) γιατι δεν γίνεται χρέωση αυτές τις ημέρες.

Για ποιό λόγο αποθηκεύεις το τελικό κόστος στη βάση? αφου μπορείς να το υπολογίσεις

 

Αυτο που θέλω να σου εξηγήσω περισσότερο είναι να φτιάξεις μια καλή βάση για να μην έχεις πολλά προβλήματα στον προγραμματισμό. Το ερώτημά σου δείχνει αρκετά μακρύ... και για ποιό λόγο αναγνωρίζεις τον πελάτη απο τον αριθμό ταυτότητας και όχι απο το ID?

 

Όσο για την διάρκεια η συνάρτηση Datediff θα σε βοηθήσει σε αυτό καθώς έχει την δυνατότητα να αφαιρεί σωστά τις ημερομηνίες.

Οι ημερομηνίες δεν αφαιρούνται σαν αριθμοί...

 

Τί γλώσσα προγραμματισμού χρησιμοποιείς?

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...