שאלה של אופן פילטור נתונים - SQL

beky1

New member
שאלה של אופן פילטור נתונים - SQL

היי לכולם, חדשה בפורום,
לומדת SQL עובדת עם תוכנת ניהול שרת SQL 2014 להרצת השאילתות
ועובדת עם DB AdventureWorks2014 של מיקרוסופט.
שאלתי:
אני רוצה לחשב מה היה ממוצע הרווח בשנת 2014
השאילתה שאני השתמשתי היא:

select
'avg(ListPrice - StandardCost) AS 'revenu
from Production.Product
where year(SellStartDate) = 2014
אבל אמרו לי שהתנאי צריך להיות:
where modifieddate like '%2014%'​

למרות שהרצת שתי השאילתות נותנת תשובה זהה, אשמח לתובנות,
תודה לעוזרים
 

גרי רשף

New member
אינני יודע מה התבקשת בדיוק לעשות..

.. נחחלק לשניים:
אני מבין שמי שאמר לך את זה התכוון שיש לפלטר לפי עמודה אחרת. יתכן ויש כמה עמודות תאריך, וצריך לדעת לפי מה הלקוח רוצה שנפלטר.
השאלה השנייה היא איך לפלטר: מה שאת כתבת נכון לוגית, אבל עלול לפגוע בביצועים אם יש אינדקס על עמודת התאריך בה השתמשת. מאוד יכול להיות שלא למדתם את זה עדיין ולא היית יכולה לדעת. הבעייה שגם השימוש ב-Like קצת עקום, בעיקר אם מדובר בסוג נתון כדוגמת Date או DateTime. היה ראוי לחפש את כל מה שבין 01/01/2014 ו-01/01/2015 (לא כולל).
 
למעלה