Jump to content



Βοήθεια στην Access/SQL


lenia1983

Recommended Posts

Καλησπέρα

Δημιουργώ μια βάση στην οποία καταχωρώ αυτοκίνητα και πελάτες. Ο ένας πίνακα είναι πελάτες με Αρ_Ταυτότητας και στοιχεία πελάτών , ο άλλος Αυτοκίνητα με Αρ_Κυκλοφορίας Μάρκα , Μοντέλο και ο τρίτος έχει τα πεδία Αρ_ταυτότητας, Αρ_Κυκλοφορίας, Ημερ_Αγοράς και Τιμή.

Εχω κολλήσει σε δύο ερωτήματα:

α. Πως μπορώ να αναζητήσω το άτομο που δεν έχει αυτοκίνητο

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

Link to comment
Share on other sites

Έχεις χρησιμοποιήσει κάποιο linking ανάμεσα στους δυο πίνακες...? Πρέπει να υπάρχει ένα μοναδικό στοιχείο στον κάθε πίνακα, το οποίο να αντιστοιχεί σε ένα άλλο μοναδικό ενός άλλου πίνακα... πχ στην περίπτωση πολλαπλών ιδιοκτητών ενός οχήματος, θα πρέπει κάθε αμάξι να έχει ένα μοναδικό id (πχ auto-number) και ο κάθε πελάτης να έχει field στο table των πελατών, που να δηλώνει ποιο αμάξι του ανήκει...

Αν δηλώσεις και το default id στους ιδιοκτήτες, να είναι null αρχικά μέχρι να πάρει τιμή, τότε μπορείς να κάνεις και τα δυο παραπάνω που ζητάς...

Link to comment
Share on other sites

Ωραία, τότε πρέπει να βάλεις και στους πελάτες ένα πεδίο που θα κρατάει τον αριθμό του αυτοκινήτου που τους ανήκει... οπότε οι πίνακες θα αποκτήσουν ένα link που θα είναι ο αριθμός του αυτοκινήτου...

Στην συνέχεια θα κάνεις (α) ένα query για τους πελάτες που έχουν NULL πινακίδα αυτοκινήτου και (β) ένα query πάλι στους πελάτες με κριτήριο την πινακίδα του αυτοκινήτου...

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

Link to comment
Share on other sites

Δεν χρειάζεται να βάλεις επιπλέον πεδία αφού οι πίνακες Αυτοκίνητα και Πελάτες συνδέοντε με τον τρίτο πίνακα που έχεις.Αν ένας πελάτης δεν έχει αυτοκίνητο αυτό σημαίνει ότι δεν υπάρχει καμία εγγραφή με το id του στον τρίτο πίνακα.Για να το βρεις αυτό μπορείς να γράψεις

SELECT *

FROM Πελάτες

WHERE Αρ_Ταυτότητας NOT IN (SELECT Αρ_Ταυτότητας

FROM όνομα_τρίτου_πίνακα)

β)SELECT *

FROM Πελάτες,Αυτοκίνητα,3οςΠίνακας

WHERE Πελάτες.Αρ_Ταυτότητας=3οΠίνακας.Αρ_Ταυτότητας AND Αυτοκίνητα.Αρ_Κυκλοφορίας=3οςΠίνακας.Αρ_Κυκλοφορίας AND (3οςΠίνακας.Αρ_Ταυτότητας= 1ος πελάτης OR 3οςΠίνακας.Αρ_Ταυτότητας= 2ος πελάτης)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.