Εγγραφές ανά ημέρα και ανά χρονική ζώνη!

Γενικές συζητήσεις για SQL και SQL Servers (RDBMS)

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Nantia
Δημοσιεύσεις: 12
Εγγραφή: 16 Ιαν 2008 13:39

Εγγραφές ανά ημέρα και ανά χρονική ζώνη!

Δημοσίευση από Nantia » 27 Ιαν 2008 14:20

Καλησπέρα!!! :P
Θέλω να φτιάξω για μια εργασία στη σχολή μου ένα ερώτημα σε SQL και έχω κάποιες απορίες!
Συγκεκριμένα θέλω να φτιάξω ένα query που να μου βγάζει τις εγγραφές που θέλω ανά ημέρα και ανά χρονική ζώνη της ημέρας (8-12,12-16 και 16-20) όμως δεν ξέρω πως να το κάνω! Η ημερομηνία και η ώρα είναι σε πεδίο datetime όλα μαζί και δεν ξέρω να το επεξεργαστώ, μπορεί κανείς να βοηθήσει plzzz??? :cry:

Nantia
Δημοσιεύσεις: 12
Εγγραφή: 16 Ιαν 2008 13:39

Εγγραφές ανά ημέρα και ανά χρονική ζώνη!

Δημοσίευση από Nantia » 29 Ιαν 2008 02:21

Δεν ξέρει κανείς??? :( :( :(
Εχω καταφέρει να το κάνω να φαίνεται ανά ημέρα και ανά ώρα, αλλά δεν μπορώ να κατηγοριοποιήσω τις ώρες σε χρονικές ζώνες, όπως θέλω!!!

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Εγγραφές ανά ημέρα και ανά χρονική ζώνη!

Δημοσίευση από soteres2002 » 29 Ιαν 2008 05:52

kane ena copy/paste tin SQL sou na doume mexri pou exeis ftasei kai na se boithisoume

Nantia
Δημοσιεύσεις: 12
Εγγραφή: 16 Ιαν 2008 13:39

Εγγραφές ανά ημέρα και ανά χρονική ζώνη!

Δημοσίευση από Nantia » 29 Ιαν 2008 14:36

Οκ! :D

Το ερώτημα είναι "Ποια είναι η μέση αξία συναλλαγών ανά κατάστημα, ανά ημέρα και ανά ζώνη της ημέρας (6-12 πρωί, 12-16 μεσημέρι, 16-20 βράδυ);"

Έχω καταφέρει το εξής

Κώδικας: Επιλογή όλων

with	weekDay(transDateTime, weekday) as
		(select	transDateTime, datename(dw, transDateTime)
		from	transactions),
		timeZone(transDateTime, timezone) as
		(select transDateTime, datename(hh, transDateTime)
		from	transactions)
select	storeCode, weekday, timezone, avg(ivalue) as avg_ivalue
from		transactionItems, transactions, stores, weekDay, timeZone
where		transactionItems.transID=transactions.transID and 
		transStore=storeCode and
		weekDay.transDateTime=transactions.transDateTime and
		timeZone.transDateTime=transactions.transDateTime
group by storeCode, weekday, timezone
order by storeCode, weekday, timezone
Το παραπάνω μου βγάζει το μέσο όρο των συναλλαγών ανά κατάστημα, ανά ημέρα και ανά ώρα, δηλαδή πχ

Κώδικας: Επιλογή όλων

storeCode	weekday	timezone	avg_ivalue
374	Friday	10	2,35379699121592
374	Friday	11	2,40800211533497
374	Friday	12	2,48726365706168
374	Friday	13	2,37525832892642
374	Friday	14	2,41508787176516
374	Friday	15	2,47887905451141
374	Friday	16	2,42061344060162
374	Friday	17	2,43521901528011
374	Friday	18	2,30912913796827
374	Friday	19	2,31437522361355
374	Friday	20	2,30336463223788
374	Friday	6	2,51992233009709
374	Friday	7	2,25230135557874
374	Friday	8	2,46608710173001
374	Friday	9	2,43260008908679
374	Monday	10	2,31819924560013
374	Monday	11	2,29599653859474
374	Monday	12	2,2816881595988
374	Monday	13	2,33390832284081
374	Monday	14	2,18818716919148
374	Monday	15	2,29964559144145
374	Monday	16	2,29203516147525
374	Monday	17	2,28973742625153
374	Monday	18	2,33928399068056
374	Monday	19	2,43917998991152
374	Monday	20	2,304414656989
374	Monday	6	2,26895104895105
374	Monday	7	2,224224250326
374	Monday	8	2,25198437375421
374	Monday	9	2,31889213035427
...
374	Wednesday	10	2,39913892755545
374	Wednesday	11	2,37369563225614
374	Wednesday	12	2,26492773609874
374	Wednesday	13	2,22975819306727
374	Wednesday	14	2,29081975092857
374	Wednesday	15	2,29213353498013
374	Wednesday	16	2,33857554879028
374	Wednesday	17	2,29347984828614
374	Wednesday	18	2,41691294960233
374	Wednesday	19	2,34310960767467
374	Wednesday	20	2,25571457326891
374	Wednesday	6	2,56288352272727
374	Wednesday	7	2,18125175808721
374	Wednesday	8	2,23020246647971
374	Wednesday	9	2,21450088803498
Εγώ θέλω σε ζώνη ώρας!
δηλαδή

Κώδικας: Επιλογή όλων

storeCode	weekday	timezone	avg_ivalue
374	Friday	6-11	(το σύνολο των avg_ivalue από 6 ως 11)
374	Friday	12-15	(το σύνολο των avg_ivalue από 12 ως 15)
374	Friday	16-20	(το σύνολο των avg_ivalue από 16 ως 20)
374	Monday	6-11	(το σύνολο των avg_ivalue από 6 ως 11)
374	Monday	12-15	(το σύνολο των avg_ivalue από 12 ως 15)
374	Monday	16-20	(το σύνολο των avg_ivalue από 16 ως 20)
...
374	Wednesday	6-11	(το σύνολο των avg_ivalue από 6 ως 11)
374	Wednesday	12-15	(το σύνολο των avg_ivalue από 12 ως 15)
374	Wednesday	16-20	(το σύνολο των avg_ivalue από 16 ως 20)

Επίσης ένα ακόμα πρόβλημα είναι ότι μου βγάζει ανακατεμένες τις μέρες και τις ώρες!
Τις μέρες τις βγάζει αλφαβητικά ενώ θέλω με τη σείρα τους(Monday, Tuesday κτλ), γίνεται?
Τις ώρες, ακόμα και με την εντολή datename(hh, transDateTime) που υποτίθεται ότι το "hh" παρουσιάζει τις ώρες σαν 06,07,08,...,18,19,20, δεν γίνεται, και το 6 θεωρείται μεγαλύτερο από το 13! :hammer:
Help!!!

A δουλεύω σε SQL Server 2005!!

Nantia
Δημοσιεύσεις: 12
Εγγραφή: 16 Ιαν 2008 13:39

Εγγραφές ανά ημέρα και ανά χρονική ζώνη!

Δημοσίευση από Nantia » 01 Φεβ 2008 05:16

Βασικά όπως το σκέφτηκα μάλλον θα ήταν καλύτερο έτσι!

Κώδικας: Επιλογή όλων

storeCode	weekday	morning	noon	afternoon
374	Friday	(avg_ivalue)	(avg_ivalue)	(avg_ivalue)
374	Monday	(avg_ivalue)	(avg_ivalue)	(avg_ivalue)
374	Saturday	(avg_ivalue)	(avg_ivalue)	(avg_ivalue)
374	Sunday	(avg_ivalue)	(avg_ivalue)	(avg_ivalue)
374	Thursday	(avg_ivalue)	(avg_ivalue)	(avg_ivalue)
374	Tuesday	(avg_ivalue)	(avg_ivalue)	(avg_ivalue)
374	Wednesday	(avg_ivalue)	(avg_ivalue)	(avg_ivalue)
Καμμιά ιδέα????? :question:

Απάντηση

Επιστροφή στο “Βάσεις Δεδομένων και SQL - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης