עזרה בשאילתה SQL

קדם Forums הייטק Database Design & Development עזרה בשאילתה SQL

  • עזרה בשאילתה SQL

    פורסם ע"י יעל כהן  הייטק on 28/07/2022 ב4:50 pm

    יש לי טבלה שאחד השדות בה הוא ספרור פנימי ואני צריכה את האחרון שהוסף- את הספרור הגדול.

    דוג’: יש טבלת מחירים למוצר .

    לכל מוצר יש כמה מחירים בטבלה עם ספרור פנימי(1,2,3 וכו) אני צריכה לשלוף את כל המוצרים העונים לתנאי מסויים, ושלא ישלף לי כל מוצר כמה פעמים אלא את המוצר שלו המחיר הוא העדכני ביותר- הספרור הפנימי הגבוה ביותר.

    לי נשלף כמו בטבלה המצורפת ואני צריכה רק את השדות בהם המחיר הוא העדכני ביותר- מודגש בצהוב.

    אודה לעזרתכן.

    יעל כהן הגיבה לפני 1 שנה, 9 חודשים 5 חברות · 5 תגובות
  • 5 תגובות
  • תהילה גרינצייג

    חברה
    חברה
    29/07/2022 ב12:05 pm

    אפשר להשתמש בcross apply , זה כמו inner join שבתוכו את שולפת רק את המוצר האחרון.

    select p.Price
    from Producs p
    *cross apply (select top 1
    from Products t
    where t.KodProduct = p.KodProduct
    order by t.Number desc) lastProduct
  • אסתי שין

    הייטק
    חברה
    30/07/2022 ב10:44 pm

    א”א משהו עם group by???

  • מירי ברויאר

    חברה
    חברה
    31/07/2022 ב12:02 am

    group by לא יעזור לך כי את צריכה לדעת מה האחרון לכל קבוצה.

    את יכולה גם להשתמש בMAX:

    select price

    from tbl_product p1

    where sifrur (select max(sifrur)

    from tbl_product p2

    where p1.name = p2.name)

  • צפורה

    חברה
    חברה
    31/07/2022 ב9:59 am

    את יכולה לעשות view שיביא לך את האחרון לכל מוצר, ואז לשלוף לפי קוד מוצר.

    ואם זה שימוש חד פעמי פשוט להוסיף תנאי בשאילתא הפנימית.

    SELECT *

    FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY Product ORDER BY Sifrur DESC) AS RowNum FROM Table) Source

    WHERE RowNum = 1

    And Product = ‘עגבניה’

    הסבר:

    הפונקציה ROW_NUMBER ממספרת את השורות שנשלפו בסדר רץ.

    פרמטר ראשון בפונקציה: לפי מה לקבץ. כלומר- מחלק את הטבלה לקבוצות ומתחיל מספור מחדש 1-2-3 לכל קבוצה לחוד.

    פרמטר שני – לפי מה למיין את הקבוצה. במקרה הזה – לפי ספרור יורד.

    כל העגבניות מקובצות יחד, בספרור יורד, וכל שורה ממסופרת במספור רץ.

    כשאת שולפת רק את המספור “1” את לוקחת את השורה הראשונה, העליונה בכל קבוצה.

  • יעל כהן

    הייטק
    חברה
    01/08/2022 ב12:00 pm

    תודה לכלוכן

    עזרתן ממש.

    עשיתי בסוף עם תת שאילתה ו-ORDER BY.

    סורי שאני לא מפרסמת- אבטחת מידע.

    (העגבניות היו דוגמה… 😉)

Log in to reply.

מעוניינת בפרסום

חשוב: לא כל פרסום מאושר, נא לפרט בדיוק במה מדובר

ניתן לפנות גם במייל ל: [email protected]

מה את מחפשת?

מילות מפתח פופולריות לפי תחומים

ניתן לחפש גם מילות מפתח , תפקידים וכישרון מיוחד שאינם מופיעים ברשימות - "נהגת", "ציור בחול" וכדומה.

דילוג לתוכן