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

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

Δημοσ.

Καλησπέρα

 

Έχουμε τον παρακάτω πίνακα  ο οποίος αναπαριστά διάφορα προϊόντα (ProdID) ,τα καταστήματα στα οποία είναι διαθέσιμα αυτά τα προϊόντα ( PlaceID) , το κόστος ανα τεμάχιο για το συγκεκριμμένο κατάστημα (Cost)  και η ημερομηνία (JulDat) που καταγράφτηκε η τιμή αυτή.

 

Το ίδιο προϊόν μπορεί να πωλείται σε περισσότερα του ενός καταστήματα και μάλιστα η τιμή του μπορεί να διαφέρει από κατάστημα σε κατάστημα.  Όσο πιο μεγάλη είναι η τιμή του JulDat τόσο πιο πρόσφατη είναι η ημερομηνία πχ η τιμή 140 αντιστοιχεί στις 20/5/13 ενώ η 143 στις 23/5/13.

 

Θέλω ένα sql query όπου θα εμφανίζει για όλα τα προϊόντα που υπάρχουν στον πίνακα Prices :
προϊον, κατάστημα,πιο προφατη τιμή

 

και έαν γίνεται  για καθε προϊον πόσες φορές έχει γίνει αλλάγη της τιμής του από όλα τα καταστήματα

 

Έχω δοκιμάσει κάτι τέτοιο για το πρώτο αλλά δεν βγάζει σωστά αποτελέσματα....

 

SELECT ProdID, PlaceID, Cost, MAX( JulDat ) , Count( JulDat )
FROM Prices
GROUP BY ProdID, PlaceID

post-197594-0-84213000-1369409705_thumb.png

Δημοσ.

αυτό παίζει?

select p1.prodid, p1.placeid, p1.cost, p1.juldat, p3.changes
from prices p1
inner join (select prodid, max(juldat) as latest
  from prices
  group by prodid) p2 on p1.prodid = p2.prodid and p1.juldat = p2.latest
inner join ( select prodid, count(*) as changes
  from prices
  group by prodid) p3 on p1.prodid = p3.prodid

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...