mariakal Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 Για ένα απόσπασμα μίας βάσης δεδομένων ασφαλιστικής εταιρίας με πίνακες (μεταξύ άλλων) τους: ΙΔΙΟΚΤΗΤΗΣ (κωδ,ονομα,δνση) ΣΠΙΤΙ (αδεια_κατ,τυπος,χρονος_κατ) ΖΗΜΙΑ (κωδ_ζημιας,τυπος,ημνια) πρέπει να δηλώσω εντολές SQL για τις πιο κάτω περιπτώσεις: (α) Βρείτε τον αριθμό των ζημιών, στις οποίες τα σπίτια ανήκουν στον Ιωάννη Ιωάννου. (β) Προσθέστε μία νέα ζημιά στη βδ. Θεώρείστε τις κατάλληλες τιμές για τα απαιτούμενα χαρακτηριστικά. (γ) Ενημερώστε το ποσό ζημιάς για το σπίτι με άδεια κατασκευής 18345 στη ζημιά με κωδικό 08956 στις 20.000 ευρώ Υπάρχουν και άλλες περιπτώσεις, αλλά αυτες οι τρεις είναι οι πιο συνθετες και με εχουν δυσκολεψει. Θα εκτιμούσα πολύ , οποιαδήποτε βοηθεια.
virxen75 Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 λείπει ο πίνακας που συνδέει ένα σπίτι με τις ζημιές και ο πίνακας σύνδεσης σπιτιών-ιδιοκτητών ή κάποια πεδία από τους πίνακες. ποσό ζημίας ποιο πεδίο ποιου πίνακα? διορθωσε τα για αρχή
mariakal Δημοσ. 7 Ιανουαρίου 2010 Μέλος Δημοσ. 7 Ιανουαρίου 2010 Επισυναπτω το ΔΟΣ. Ελπιζω να βοηθα. ΔΟΣ.zip
virxen75 Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 το Εχει και το Δηλωσε αφορούν κάποιες σχέσεις που πρέπει να εκφραστούν με κάποιους πίνακες π.χ. ΙΔΙΟΚΤΗΤΕΣ_ΣΠΙΤΙΩΝ(id#,κωδ_ιδιοκτητη,αδεια_κατ) ΖΗΜΙΕΣ(ιδ#,αδεια_κατ,ημερομηνια,ποσο_ζημιας,περιγραφη_ζημιας) φτιάξε σωστά τους πίνακες και όλους όσους χρειάζονται και μετά ρωτα τα sql που θες.
mariakal Δημοσ. 8 Ιανουαρίου 2010 Μέλος Δημοσ. 8 Ιανουαρίου 2010 οι πίνακες είναι: ΙΔΙΟΚΤΗΤΗΣ (κωδ,ονομα,δνση) ΣΠΙΤΙ (αδεια_κατ,τυπος,χρονος_κατ) ΖΗΜΙΑ (κωδ_ζημιας,τυπος,ημνια) ΔΗΛΩΣΗ (αδεια_κατ, κωδ_ζημιας, ποσο) Σε ότι αφορά τη συσχέτιση ΕΧΕΙ, δε χρειάζεται (νομίζω) να εκφραστεί με πίνακα. Αυτό που χρειάζομαι βοήθεια είναι στο πώς θα δηλώσω με εντολές SQL τις πιο κάτω περιπτώσεις: (α) Βρείτε τον αριθμό των ζημιών, στις οποίες τα σπίτια ανήκουν στον Ιωάννη Ιωάννου. (β) Προσθέστε μία νέα ζημιά στη βδ. Θεώρείστε τις κατάλληλες τιμές για τα απαιτούμενα χαρακτηριστικά. (γ) Ενημερώστε το ποσό ζημιάς για το σπίτι με άδεια κατασκευής 18345 στη ζημιά με κωδικό 08956 στις 20.000 ευρώ
virxen75 Δημοσ. 8 Ιανουαρίου 2010 Δημοσ. 8 Ιανουαρίου 2010 κάνεις λάθος δεν αποθηκεύεις στην βάση σου το σημαντικό στοιχείο της ιδιοκτησίας δηλαδή σε ποιον ιδιοκτήτη ανήκει το κάθε σπίτι.
mariakal Δημοσ. 8 Ιανουαρίου 2010 Μέλος Δημοσ. 8 Ιανουαρίου 2010 Έχεις δικιο virxen75, το γεγονός κ μόνο ότι η σχεση ΙΔΙΟΚΤΗΤΗΣ εχει ΣΠΙΤΙ ειναι πολλα προς πολλά, δηλώνει από μονο του την υπαρξη και του πίνακα ΕΧΕΙ (κωδ, άδεια_κατ). Επομένως συμπληρώνω στου υπόλοιπους πίνακες κ τον προηγούμενο. Τώρα με τις εντολές SQL, τί θα γίνει?
virxen75 Δημοσ. 8 Ιανουαρίου 2010 Δημοσ. 8 Ιανουαρίου 2010 ΙΔΙΟΚΤΗΤΗΣ (κωδ,ονομα,δνση) ΣΠΙΤΙ (αδεια_κατ,τυπος,χρονος_κατ) ΖΗΜΙΑ (κωδ_ζημιας,τυπος,ημνια) ΔΗΛΩΣΗ (αδεια_κατ, κωδ_ζημιας, ποσο) ΕΧΕΙ (κωδικος,κωδ, άδεια_κατ) (α) Βρείτε τον αριθμό των ζημιών, στις οποίες τα σπίτια ανήκουν στον Ιωάννη Ιωάννου. select count(κωδ_ζημιας) from ΖΗΜΙΑ where ....... (β) Προσθέστε μία νέα ζημιά στη βδ. Θεώρείστε τις κατάλληλες τιμές για τα απαιτούμενα χαρακτηριστικά. insert into ZHMIA values(..... (γ) Ενημερώστε το ποσό ζημιάς για το σπίτι με άδεια κατασκευής 18345 στη ζημιά με κωδικό 08956 στις 20.000 ευρώ update ΔΗΛΩΣΗ set ποσο=20000 where αδεια_κατ='18345' and κωδ_ζημιας='08956' το γ) ήταν απλό γι αυτό το έκανα. Προσπάθησε τα α) β) και τα λέμε.
mariakal Δημοσ. 9 Ιανουαρίου 2010 Μέλος Δημοσ. 9 Ιανουαρίου 2010 Για τα δυο ερωτήματα, έχω σχεδιάσει τις ακόλουθες εντολές SQL. Υπάρχει κάπου λάθος? ΙΔΙΟΚΤΗΤΗΣ (κωδ,ονομα,δνση) ΣΠΙΤΙ (αδεια_κατ,τυπος,χρονος_κατ) ΖΗΜΙΑ (κωδ_ζημιας,τυπος,ημνια) ΔΗΛΩΣΗ (αδεια_κατ, κωδ_ζημιας, ποσο) ΕΧΕΙ (κωδικος,κωδ, άδεια_κατ) (α) Βρείτε τον αριθμό των ζημιών, στις οποίες τα σπίτια ανήκουν στον Ιωάννη Ιωάννου. SELECT COUNT (κωδ_ζημιας) FROM ΖΗΜΙΑ WHERE κωδ_ζημιας in (SELECT κωδ_ζημιας, κωδ, ονομα FROM ΔΗΛΩΣΗ , EXEI, IΔΙΟΚΤΗΤΗΣ WHERE ονομα="Ιωάννης Ιωάννου") (β) Προσθέστε μία νέα ζημιά στη βδ. Θεώρείστε τις κατάλληλες τιμές για τα απαιτούμενα χαρακτηριστικά. insert into ZHMIA values("Α 123", "ΠΥΡΚΑΓΙΑ", "10/11/2009")
virxen75 Δημοσ. 9 Ιανουαρίου 2010 Δημοσ. 9 Ιανουαρίου 2010 η σωστή μορφή πινάκων για μένα είναι αυτή ερώτημα γ(εξαρτάται από τον τύπο δεδομένων) ============================================== update ΔΗΛΩΣΗ set ποσο=20000 where αδεια_κατ=18345 and κωδ_ζημιας="08956"; (αν αδεια_κατ ακέραιος) ερώτημα β ================ insert into ZHMIA values("Α 123", "ΠΥΡΚΑΓΙΑ", "10/11/2009"); ερώτημα α ===================== SELECT COUNT (κωδ_ζημιας) FROM ΔΗΛΩΣΗ WHERE αδεια_κατ in (select αδεια_κατ from ΣΠΙΤΙ INNER JOIN ΙΔΙΟΚΤΗΤΗΣ ON ΣΠΙΤΙ.κωδ=ΙΔΙΟΚΤΗΤΗΣ.κωδ where ΙΔΙΟΚΤΗΤΗΣ.ονομα="Ιωάννη Ιωάννου");
mariakal Δημοσ. 9 Ιανουαρίου 2010 Μέλος Δημοσ. 9 Ιανουαρίου 2010 Σε ευχαριστώ πολύ. Θα εισαι ο μοναδικος λόγος να συμπαθώ τον ΟΦΗ!!
mariakal Δημοσ. 11 Ιανουαρίου 2010 Μέλος Δημοσ. 11 Ιανουαρίου 2010 Μελετώντας τη λυση που μου πρότεινες φίλε virxen75, είχα δυο απορίες. 1) Καταρχίν, διεπίστωσα ότι στους πίνακες που έχεις (στη μικρογραφία), δεν υπάρχει ο: ΕΧΕΙ (κωδικος,κωδ, άδεια_κατ) Γιατί? 2) Αν για παράδειγμα θέλω να κάνω μια διαγραφή. Πχ να διαγράψω το διαμέρισμα που ανήκει στο Γιώργο, πώς πρέπει να κινηθώ? Να φτιάξω εμφωλευμένη SELECT? Δηλαδή έτσι: DELETE FROM ΣΠΙΤΙ WHERE κωδ IN (SELECT κωδ FROM ΙΔΙΟΚΤΗΤΗΣ WHERE όνομα = "Γιώργος")
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.