לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 01-07-2009, 11:03
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 1 שנכתבה על ידי tnadav1 שמתחילה ב "שליפת רשומות עם שדה יחודי בשאילתה עם פונקציות של Group by (אגרגטיות?)"

מה המטרה של השאילתא שלך? אולי אפשר לייעל אותה.

בפיסקת ה-WHERE, מסד הנתונים לא ישתמש באינדקס (במידה וקיים) על `cadets_activities`.`purposeTime`.
אם אתה רוצה שהוא כן ישתמש באינדקס, אז:

קוד:
WHERE `cadets_activities`.`stype` = 5 AND `cadets_activities`.`purposeTime` > DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH)

כתבתי את פיסקת ה-WHERE לפי איך שהבנתי שאתה רוצה את תוצאות השאילתא: שזה יציג לך את הרשומות מהזמן של החודש הנוכחי, שנמצאים בו כרגע. ולא מהזמן של 30 ימים האחרונים.

אם אתה רוצה שתוצאות השאילתא יאוחסנו ב-cache להשגה מהירה יותר שלהם בעתיד, תחליף את CURRENT_DATE (או CURDATE(), זה אותו הדבר) לתאריך הרצוי, כלומר למחרוזת של התאריך.

קרא על CURRENT_DATE ו- הנושא של INTERVAL.

בנוגע לשאלה המקורית:
ניסית GROUP BY?
יענו:
קוד:
GROUP BY `cadets_activities`.`purposeTime`
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 01-07-2009, 19:53
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
בתגובה להודעה מספר 2 שנכתבה על ידי dorM שמתחילה ב "מה המטרה של השאילתא שלך? אולי..."

לא, purposeTime זה לא אינדקס, והשתמשתי ב- CURDATE רק בשביל לבדוק אם השאילתה עובדת, התאריך הולך להיות דינאמי.

השאילתה ששמתי שם יש טעות סינטקס, סורי על זה, השתמשתי בשאילתה שעשיתי לפי שתקנתי את זה.
זה השאילתה:
קוד:
SELECT DISTINCT ROUND( SUM( `cadets_attend`.`attend` ) / COUNT( DISTINCT `cadets_activities`.`purposeTime` ) ) AS `value`, COUNT( DISTINCT `cadets_activities`.`purposeTime` ), SUM( `cadets_attend`.`attend` ) FROM `cadets_activities` LEFT JOIN `cadets_attend` ON `cadets_attend`.`activityId` = `cadets_activities`.`id` WHERE `cadets_activities`.`stype` =5 AND YEAR( `cadets_activities`.`purposeTime` ) = YEAR( DATE_SUB( '2009-7-1', INTERVAL 1 MONTH ) ) AND MONTH( `cadets_activities`.`purposeTime` ) = MONTH( DATE_SUB( '2009-7-1', INTERVAL 1 MONTH ) )

התוצאה של
קוד:
COUNT( DISTINCT `cadets_activities`.`purposeTime` )

היא נכונה.
התוצאה של
[CODE][
SUM( `cadets_attend`.`attend` )
/CODE]
היא לא נכונה, בגלל שאני רוצה לשלוף רק את הערך של רשומות של הטבלה cadets_attend שקשורות לרשומות בטבלה cadets_activities שהשדה purposeTime שלהם הוא ייחודי
GROUP BY לא פתר את הבעיה ואני לא ממש בטוח איך זה קשור
_____________________________________



נערך לאחרונה ע"י tnadav1 בתאריך 01-07-2009 בשעה 19:57.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 23:26

הדף נוצר ב 0.04 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר