• SELECT EMPL_NUM, NAME, SUM(AMOUNT) FROM ORDERS, SALESREPS WHERE REP = EMPL_NUM GROUP BY EMPL_NUM, NAME
  • SELECT REP, CUST, SUM(AMOUNT) FROM ORDERS GROUP BY REP, CUST ORDER BY REP, CUST




    Download 84,3 Kb.
    bet12/18
    Sana12.01.2024
    Hajmi84,3 Kb.
    #135637
    1   ...   8   9   10   11   12   13   14   15   ...   18
    Bog'liq
    Mavzu Microsoft Access dasturida hisobotlar yaratish. Reja-fayllar.org

    SELECT REP, CUST, SUM(AMOUNT)
    FROM ORDERS
    GROUP BY REP, CUST
    ORDER BY REP, CUST
    Shunday qilib GROUP BY ifodasi SELECT ni guruhlarni qayta ishlashga majbur
    qiladi.
    MS SQL serverida COMPUTE ifodasi mavjud bo‗lib relyasion so‗rovlar
    asoslariga zid keladi. Lekin uning yordamida saqlanuvchi protseduralardan
    foydalanmasdan shunga o‗xshash natijalarni olish mumkin. Ruruxlanishli so‗rovlar
    uchun chegaralar mavjud. Satrlarni hisoblanuvchi ifoda asosida guruhlash mumkin
    emas. Qaytarilao‗tgan qiymatlar elementlariga ham chegaralar mavjud.
    Qaytariluvchi ustun bo‗lishi mumkin:
    1. Konstantalar.
    2. Guruhga kirgan hamma satrlar uchun bitta qiymat qaytaruvchi agregat funksiya.
    3. Guruh hamma satrlarida bir xil qiymatga ega guruhlash ustuni.
    4. Ko‗rsatilgan elementlarni o‗z ichiga oluvchi ifoda.
    Odatda guruhlanishli so‗rovlar qaytaruvchi ustunlarga guruhlash ustuni va agregat
    funksiya kiradi. Agar agregat ko‗rsatilmasa GROUP BY dan foydalanmasdan
    DISTINCT ifodasidan foydalanish yetarli. Agar so‗rovga guruhlash ustuni
    qo‗shilmasa, u yoki bu satr qaysi guruhga tegishliligini aniqlash mumkin emas.
    SHu kabi SQL92 guruhlanishli so‗rovlarni taxlil qilishda birlamchi va ikkilamchi
    kalitlar haqidagi ma‘lumot ishlatilmaydi. Har bir xizmatchi uchun buyurtmalar
    umumiy sonini hisoblash.
    SELECT EMPL_NUM, NAME, SUM(AMOUNT)
    FROM ORDERS, SALESREPS
    WHERE REP = EMPL_NUM
    GROUP BY EMPL_NUM, NAME
    Yana soddaroq shakl: Har bir xizmatchi uchun buyurtmalar umumiy sonini
    hisoblash.
    SELECT NAME, SUM(AMOUNT)
    FROM ORDERS, SALESREPS
    WHERE REP = EMPL_NUM
    GROUP BY NAME
    Agar guruhlash maydonlaridan birida NULL qiymat mavjud bo‗lsa qaysi guruhga
    tegishli bo‗ladi? WHERE ifodasida NULL va NULL tenglikka solishtirish natijasi
    yana NULL beradi. SHuning uchun ANSI/ISO standartida GROUP BY ifodasida
    NULL qiymatlar teng deb qabul qilingan.
    Guruhlash va HAVING yordamida ajratish
    Shart bo‗yicha satrlarni ajratish uchun WHERE ifodasidan foydalangan
    edik. Shart bo‗yicha guruhlarni ajratish uchun HAVING operatori mavjuddir.
    Uning sintaksisi WHERE operatori bilan bir xil va ulardan birgalikda foydalanigsh
    mumkin. Quyidagi so‗rovni ko‗ramiz:
    Buyurtmalar umumiy narxi $300 dan ortiq xizmatchilar uchun buyurtma o‗rtacha
    narxi qanchaga teng?

    Download 84,3 Kb.
    1   ...   8   9   10   11   12   13   14   15   ...   18




    Download 84,3 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    SELECT REP, CUST, SUM(AMOUNT) FROM ORDERS GROUP BY REP, CUST ORDER BY REP, CUST

    Download 84,3 Kb.