Kesishgan so‘rov yaratish

|
Kesishgan so‘rov yaratish
|
bet | 3/6 | Sana | 11.12.2023 | Hajmi | 143,02 Kb. | | #115647 |
Bog'liq Mavzu kod relyatsion algebrasi. Relyatsion hisoblashKesishgan so‘rov yaratish
Misol tariqasida "Borey" ma’lumotlar bazasi uchun kesishgan so‘rov yaratamiz xar oylik mahsulot sotuvini chiqarish uchun. Ma’lum davrdan so‘ng masalan xar oy yoki кварталdan so‘ngnatijalardan iborat jadvallar grafiklar yaratish uchun ishlatiladi. Quyidagi kadamma kadam kesishgan so‘rov yaratish jarayonida so‘rovlarda yangi hisoblanuvchi maydonlar yaratish uchun ifodalardan foydalanish ko‘rsatilgan. Shunday qilib satrlarda mahsulotlar ularga mos ustunlarda oylik sotuv hajmlari chikariluvchi kesishgan so‘rov yaratamiz.
Buning uchun:
Конструктор rejimida yangi so‘rov yarating va unga "Товары" (Products), "Заказы" (Orders) и "Заказано" (Order Details) jadvallarini qo‘shing.
"Товары" jadvalining "КодТовара" (ProductlD) и "Марка" (ProductName) maydonlarini so‘ngra "Товары" jadvali"ДатаРазмещения" (OrderedDate) maydonini so‘rov blanki birinchi uchta ustuniga ko‘chiring.
Запрос, Перекрестный (Query, Crosstab Query)menyu komandasini tanlang. Заголовок okna запросa Запрос1:на выборку (Query1:Select Query) so‘rovning oynasi sarlavhasi Запрос!перекрестный запрос (Queryl:Crosstab Query) ga o‘zgaradi. Bundan tashqari so‘rovlar blankiga Перекрестная Таблица (Crosstab) va Групповая операция (Total) satrlari qo‘shiladi va hamma ustunlarga avtomatik Группировка (Group By) operatsiyasi kiritiladi.
"КодТовара" ustuni Перекрестная Таблица yacheykasi ro‘yxatida Заголовки строк (Row Heading) qiymatini tanlang. Xuddi shuni "Марка" ustuni uchun bajaring. Bu ustunlar kesishgan jadvali satrlarining kerakli sarlavhalaridir.
"ДатаРазмещения" ustuni Групповая операция yacheyka ro‘yxatida Условие (Where) qiymat tanlang. Shu ustunning Условие отбора (Criteria) yacheykasida kesishgan jadvalda 2005 yil uchun ma’lumotlarni chiqarish uchun <=#31. 12. 05# And >=#01. 01. 05# ifoda kiriting.
Kursorni keyingi bo‘sh ustunning Pole (Field) yacheykasiga o‘rnating va quyidagi ifodani kiriting: Объем продаж: Sum([Количество]*[Заказано]. [Цена]). Bu qiymati ifoda yordamida hisoblanadigan, nomi bo‘lsa - "Объем продаж" maydon bo‘ladi. Ifodada so‘rovga kiritilgan jadvallardan maydonlar ishlatiladi, lekin maydonlar o‘zi so‘rov natijasiga kiritilmagan. Bu shuni bildiradiki hisoblanuvchi maydon yaratilganda ifodaga faqat so‘rov maydoniga ilova emas, so‘rov natijasiga kirmaydigan maydonlarga ham ilovalar kiritish mumkin. Muhimi ular berilgan jadvallarda bo‘lishi. Ifodada "Цена" maydoniga ilovada"Заказано" jadval nomini ko‘rsatdik, "Количество" maydoniga ilovada ko‘rsatmadik. Jadval nomini shuning uchun ko‘rsatdikki "Цена" nomli maydon "Товары" jadvalda xam, "Заказано" jadvalida ham mavjud.
Shu ustunning Групповая операция (Total) yacheykasida Выражение (Expression) qiymati kiriting, so‘ng Перекрестная таблица yacheykasida- Значение (Value) qiymati. "Объем продаж" ustunida so‘rov natijaviy jadvali xar bir yacheykasiga kiritiladigan xar bir mahsulot uchun umumiy buyurtmalar hajmi hisoblanadi.
Kursorni keyingi bo‘sh ustun Поле (Field) yacheykasiga o‘rnating Format([ДатаРазмещения];"mmm") ifoda kiriting. Funksiya Format O bu xolda "ДатаРазмещения" ustunidagi sana qiymatidan oyning birinchi uch xarfini qaytaradi. Bu funksiya urdamida biz so‘rovda yana bir hisoblanuvchi maydon yaratdik, ifoda kiritish tugagandan so‘ng Access avtomatik bu maydon nomini yaratadi - "Выражение!" (Exprl). Biz hisoblanuvchi maydonni aniqlamaganimizda doim shu yuz beradi. Bu ustunning Перекресткая Таблица yacheykasi ro‘yxatidan Заголовки столбцов (Column Heading) qiymat tanlang. Bu shuni bildiradiki bu so‘rov ustuni natijaviy jadval ustunlari sarlavhalari satriga aylantiriladi.
Запуск (Run) tugmasini bosing. Natijaviy yozuvlar to‘plami chiqadi.
|
| |