Есептердегі қорытындылау. Access сұрауларындағы есептелген өрістер Есепке қосуға болатын агрегаттардың түрлері

Access бағдарламасындағы жиынтық жолы кестенің бағандарындағы деректердің қысқаша мазмұнын жылдам көруге мүмкіндік береді. Мысалы, сатып алу мәліметтері бар кестеге Жалпы жолын қоссаңыз, сатылымдар сомасын, элемент бірліктерінің жалпы санын немесе сатып алынған элементтердің санын көрсете аласыз.

Ескерту:Баған мәндерінің қосындысын көрсету үшін бағанның деректер түрін Сандық, Бөлшектік немесе Валютаға орнату керек. Сандық емес бағандар үшін тек «Мәндер саны» жиынтық түрін таңдауға болады.

«Жалпы» жолын қосу

Жалпы түрін таңдау

Жолды қосқаннан кейін нәтижелерәр баған үшін көрсетілетін жиынтық түрін таңдайсыз. Мысалы, деректер түрі сан, ондық немесе валюта болғанда, қосындылар сияқты жиынтықтарды көрсетуге болады. Мәндерді санау, егер деректер түрі мәтіндік мән болса, мүмкін болады.

Осы мысалдағы кестеде бағандардағы мәндердің қосындысын көрсетейік Сатып алу бағасыЖәне Сатып алынған заттаржәне бағанның жалпы сомасы Позиция, төмендегі суретте көрсетілгендей.

Sum және басқа жиынтық функциялар қалай жұмыс істейді

Жиынтық функциялар деректер бағандары бойынша есептеулерді орындайды және бір нәтижені қайтарады. Қосынды немесе орташа мән сияқты бір мәнді есептеу қажет болса, олар пайдалы болуы мүмкін. Жиынтық функциялар деректер бағандарына қолданылатынын есте сақтаңыз. Бұл анық көрінуі мүмкін, бірақ дерекқорларды жобалау және пайдалану кезінде сіз әдетте деректер жолына және жеке жазбаларға назар аударасыз, осылайша пайдаланушылар деректерді өріске енгізе алады, келесі өрісті толтыру үшін курсорды оңға немесе солға жылжыта алады және т.б.. Керісінше, сіз бағандардағы жазбалар топтарына назар аудара отырып, агрегаттар функцияларын пайдаланыңыз.

Сатылым деректерін сақтау және қадағалау үшін Access қолданбасын пайдаланасыз делік. Жиынтық функцияларды пайдалана отырып, бір бағанда сатылған элементтердің санын, секундтағы жалпы сатылымдарды және үштен біріндегі әрбір элемент үшін орташа сатылымдарды есептей аласыз.

Төмендегі кесте Жалпы жолында қолжетімді Access жиынтық функцияларын сипаттайды. Есіңізде болсын, Access-те басқа жиынтық функциялар бар, бірақ олар сұрауларда қолданылады.

Функция

Сипаттама

Қолдау көрсетілетін деректер түрлері

«Барлығы» жолында бар ма?

Баған үшін орташа мәнді есептейді. Бағанда сандық, ақшалай немесе күн немесе уақыт мәндері болуы керек. Функция бос мәндерді елемейді.

Мәндер саны

Бағандағы элементтердің санын санайды.

Көп мәнді тізім бағаны сияқты күрделі қайталанатын скаляр деректерден басқа барлық деректер түрлері. Көп мәнді тізімдер туралы қосымша ақпаратты Көп мәнді өрістер оқулықтарындағы Көп мәнді өрістерді жасау және жою бойынша ең жақсы тәжірибелер бөлімін қараңыз.

Максималды мән

Ең жоғары мәні бар элементті қайтарады. Мәтіндік деректер үшін ең үлкен мән алфавиттегі соңғы мән болып табылады және Access регистрді ескермейді. Функция бос мәндерді елемейді.

, "Күні мен уақыты"

Ең төменгі мән

Ең кіші мәні бар элементті қайтарады. Мәтіндік деректер үшін ең кіші мән бірінші алфавиттік мән болып табылады, ал Access регистрді ескермейді. Функция бос мәндерді елемейді.

«Сандық», «Нақты», «Валюта», «Күні мен уақыты»

Стандартты ауытқу

«Сандық», «Нақты», «Валюта»

Бағандағы элементтерді қосады. Тек сандық және ақшалай деректер үшін жарамды.

«Сан», «Нақты», «Валюта»

Дисперсия

Бағандағы барлық мәндер үшін статистикалық дисперсияны есептейді. Тек сандық және ақшалай деректер үшін жарамды. Кестеде екі жолдан аз болса, Access бос мәнді қайтарады. Вариация функциясы туралы қосымша ақпаратты келесі бөлімнен қараңыз.

«Сандық», «Нақты», «Валюта»

Стандартты ауытқу және ауытқу функциялары туралы көбірек біліңіз

Функциялар Стандартты ауытқуЖәне Дисперсиястатистикалық мәндер есептеледі. Атап айтқанда, олар өздерінің орташа мәніне жақын орналасқан және қалыпты таралу заңына бағынатын мәндер үшін қолданылады (Гаусс қисығында орналасқан).

Сіз бір станокта жасалған 10 құралды кездейсоқ таңдап алып, машинаны тексеру және сапаны бақылау үшін олардың сыну күшін өлшедіңіз делік. Орташа сыну беріктігі мәнін есептесеңіз, көптеген құралдар үшін сыну беріктігі орташа мәнге жақын екенін көресіз, бірақ жоғары және төмен мәндері бар құралдар да бар. Дегенмен, егер сіз сыну беріктігінің орташа мәнін ғана есептесеңіз, бұл көрсеткіш сапаны бақылаудың тиімділігі туралы ешқандай ақпарат бермейді, өйткені бірнеше ерекше күшті немесе сынғыш құралдар орташа мәнді арттыруы немесе азайтуы мүмкін.

Функциялар өзгергіштікЖәне стандартты ауытқулармәндердің орташа мәнге қаншалықты жақын екенін көрсету арқылы бұл мәселені көрсетіңіз. Сыни күш үшін функциялардың бірі қайтаратын кішірек сандар сіздің өндірістік процестеріңіз қалыпты жұмыс істеп тұрғанын көрсетеді, себебі олардың кейбіреулері шектеулі, орташадан жоғары немесе төмен.

Дисперсия мен стандартты ауытқудың толық сипаттамасы осы мақаланың ауқымынан тыс. Екі мүмкіндік туралы қосымша ақпаратты статистика веб-сайттарынан табуға болады. Функцияларды пайдалану кезінде ДисперсияЖәне Стандартты ауытқуКелесі ережелерді есте сақтаңыз.

Сұрақ: Access бағандарының қосындысы?


Жалпы тапсырма:
Соңғы жылдағы өнімнің әрбір түрі бойынша қойма пайдасын есептеңіз.
Өнім түрлері «Аты» кестесіндегі код бойынша анықталады. (Яғни, көрініс = атау)
Пайда – «Тапсырыс» кестесіндегі «Тапсырыс сомасы» өрісі

Нәтижесінде сіз шығаруыңыз керек
Тақырып -> Жалпы сома

Жауап:Мәселе шешілді.
Рақмет сізге)

Сұрақ: Mysql: бағандар қосындысы бойынша индекс


Бәріңе сәлем.
Мен жақында MySQL-де индекстерді үйрене бастадым. Жауабын таба алмаған мынадай сұраққа тап болдым.
Бағандардың қосындысына негізделген шартты қамтитын таңдау сұрауы бар, айталық:
Берілген шарт үшін индексті қалай дұрыс құруға болады (col1+col2)?
Мен мұны осылай жасауға болады деп ойладым:
SQL
1 CREATE INDEX col1col2 ON table1(col1+ col2) ;

Бірақ бұл жазбаның дұрыстығына күмән бар.
Біреу маған мұны қалай дұрыс жасау керектігін айта алады ма?

Жауап:Мәселені шешу бойынша ұсыныстарыңыз үшін рахмет.

Сұрақ: Белгілі бір баған сомасы бар жоғарғы жолдарды таңдау


Үстел бар
IDСаны
1 50
2 100
3 50
4 20
5 60
6 20
7 100

мұндағы Id 1 - ең жаңа жазба, Id 7 - ең ескі.
«Саны» бағанының жалпы сомасы кемінде 250, яғни күтілетін нәтиже бар жоғарғы жолдарды таңдау керек:
IDСаны
1 50
2 100
3 50
4 20
5 60

Осы уақытқа дейін мен тек осыған дейін жеттім:
ТАҢДАУ * ҚАЙДАН ( ТАҢДАУ СУМ (Саны) АРТТЫҚ (ТАПСЫРУ БОЙЫНША Id ASC ) S, a.* FROM my_table a ) WHERE S< 250
Нәтижесінде мен қажет болғаннан 1 жолды аз аламын:

Анау. ол NVL жоқ ШЕКСІЗ АЛДЫДА ЖӘНЕ 1 АЛДЫНДАҒЫ жолдармен жұмыс істегенін білдіресіз бе?
1 PRECEDING арқылы бірінші ROW/RANGE қайтаратыны туралы ой жүгіртіңіз.

SY.
Hmm, nvl жоқ ол бірінші жолды/диапазонды жоғалтады, қалғанының бәрі дұрыс шығарылады. Иә, оны «жұмыс істеді» деп айту қиын.

Сұрақ: кіру күні уақыты


Қайырлы күн, менің сұрағым бар
Мен accses 2016 бағдарламасында дерекқор құрдым және есептелген бағандағы демалыс және мереке күндерін ескеру қажет мәселеге тап болдым.
есептелген баған «іссапардың басталу күні» + «жұмыс күндерінің саны» бағанының қосындысы ретінде есептеледі. Алғашқы екі мерзім қосылғаннан кейін аптаның күні тексеріліп, бейсенбі болса 5 күн, жұма 5 күн, сенбі 4 күн, ал қалған күндер 3 күн болса, қосылуы қажет. , содан кейін нөмір осы баған үшін құрылған кестеге енгізіледі. Мен бұл шындық па, жоқ па білмеймін, бірақ мен ойымды жоғалтып алдым, егер біреу шешімді білсе, маған айтыңыз.

Хабарламаға файл тіркелген. Көлемі - 22 Кб

Жауап: stalkermen4884,
- сұраныс сіз қалағандай жұмыс істей ме?
-функциялар сұраныста қолданылатын модульде жазылады (дизайн режиміндегі өрістерде не жазылғанын мұқият қараңыз) және сұрау өрістерін аргумент ретінде пайдаланыңыз (st-field[s],fin-field)
-саяхат кезеңі барлық функцияларда соңғы күнді қосқанда есептелуін қаласаңыз, i=0 түзетіңіз.
- функцияның ішіне тоқтау нүктесін орналастырыңыз және оны қадам бойынша орындау арқылы оның қалай жұмыс істейтінін көре аласыз.
-кітаптарды оқыңыз (кем дегенде онлайн оқулықтар) - сонда бәрі жазылған (егер сіз ойланып оқысаңыз, жазылғанды ​​талдасаңыз, сіз бәрін түсінесіз - мен оларды сізге қайталамаймын. Бұл форум сізде негізгі білім бар деп есептейді)

Сұрақ: Бағанның жолдар бойынша қосындысы


Бәріңе сәлем!

Мен алдын ала кешірім сұраймын, бірақ бағанның жол-жол сомасын қалай есептеу керектігін түсінбеймін. Excel бағдарламасында барлығы қарапайым (қоса берілген).
Бұл қолжетімділікте қалай жасалады?

Алдын ала рахмет!

Жауап:Үлкен рахмет!

23 сағат 57 минуттан кейін қосылды
Тақырыпты жалғастыру. Мен жиынтықты жинақтау арқылы сұрауды оңтайландыруға көмек сұраймын.

ZnachRURSum жолдарының саны шамамен 3000. Қатынастарды санау өте ұзақ уақыт алады. Оған көмектесудің жолы бар ма?

Ps: онда бұл заттардың барлығы MySQL-ге өтеді.

Сұрақ: Бағандардың қосындысы


Маған шынымен көмек керек, мен өнімдер, қызметтер және тапсырыстар кестелерінен атын, құнын және санын алып, соңында олардың сомасын өрісте көрсететініне көз жеткізуім керек. Мұрағатта мәліметтер қорының мысалы қоса берілген. Мен мәңгілік риза боламын, мен оны өз күшіммен жеңе алмаймын.

Жауап: Вячеслав И, Мен де бағыныңқы форманың көмегімен не істеуге болатынын көрдім, мен тырыстым - тіпті мелодрама.


Кесте пайдаланушысы бар

Өтінемін маған айтшы)
Кестелерді сурет түрінде көрсеткенім үшін кешірім сұраймын) Мен мұнда SQL редакторын қалай пайдалану керектігін білмеймін.

Жауап:

Хабарлама cweic

Қандай да бір себептермен сұрауыңыз жұмыс істемейді.

Мүмкін. Тексерген жоқ. Мен қазір тексеремін.

Хабарлама cweic

Маған төртінші жолдың нені білдіретінін айта аласыз ба?

Ішкі сұрау арқылы алынған қайта_қосынды кестесінен SUM бағанының таңдауы.

Хабарлама cweic

Әлі де түсініксіз, 16-жолда AS t1 бүркеншік аты бар ма? Мұның бірінші кестеге қатысы бар ма?

T1 - осы сұрау нәтижесінде қайтарылатын кестенің атауы:

Сұрақ: Access-ті кім жақсы біледі? Сақтандыруды тіркеу


Access-те «Сақтандыруды тіркеу» деп аталатын «форма» бірнеше өрістерден тұрады
- Клиент коды,
- сақтандыру коды,
-клиенттің толық аты-жөні;
- Клиент мекенжайы,
-Телефон,
- тариф коды,
- сақтандыру күні,
-төлем сомасы,
-Тариф атауы.

Құрама жолақтан Тарифтік кодты таңдау арқылы төлем сомасы автоматты түрде есептелетіндей етіп дизайнды орнатуым керек, яғни. «Төлем сомасы» өрісі тарифке сәйкес автоматты түрде толтырылады.

Сонымен қатар, Тарифтер коды мен төлем сомасы «Сақтандыру тарифтері» жеке кестеде, сондай-ақ «Сақтандыру тіркелімі» нысанының бастапқы көзі болып табылатын «Сақтандыруды тіркеу» кестесінде орналасқан.

Адамдар көмектесіңізші, кім біледі.

Жауап: 1. Тарифтік код жолдарының көзінде тарифтік бағасы бар 3-баған қосылады, онда 3 баған бар екені көрсетіледі, код (бірінші) енгізіледі, екінші (белгілеу) көрінеді, бірінші және үшінші көрінбейді - бұл бағандардың ені бойынша анықталады (2см; 0см; 0см). Мұның бәрі конструкторда, құрама терезенің қасиеттерінде.
2. Жаңартылғаннан кейін Бағаға 2-бағанның мәні тағайындалады (VBA жүйесінде 0-ден бастап нөмірленген 3-баған), онда таңдалған тарифтің бағасы жазылады.

Сұрақ: Бағандар бойынша сұрау


Сәлеметсіз бе.
Мен сұрақ қойдым
Енді тақырып тек бағандармен ұқсас.
Мысалы, 3 бағаннан бағандардағы соманы есептеу үшін сұрауды қалай жасауға болады
мысалы, O4 бағаны және осындай көптеген бағандар бар, мысалы, O5, O6, O7 және т.б.
және O4, O5 қосындысын қосыңыз... бірақ қосынды жалпы емес, бөлек, бірақ бір кестеде
Негізінен O4-тен соңына дейінгі бағандардың қосындысы (жаңаларын қоссаңыз да қанша болады)
Жаңа кестеде баған атауы және оның мөлшері болуы керек.
Мәтін көп, бірақ түсінікті деп үміттенемін)

Жауап: alvk, жақсы, сіз өзіңіздің біліміңізбен барған сайын таң қалдырасыз.

Сұрақ: MySql-тен қосылған кестеде Access-те ашылмалы тізімді қалай жасауға болады?


СҰРАҚ:
Access-те ашылмалы тізімді қалай жасауға болады?
Каталог кестесі қандай болуы керек: бағандар (типі) - ? заттар.
Каталогты қайда орналастыру керек (немесе орынды ма): in Анықтамалық кестеге қол жеткізунемесе бөлек MySql-ден қосылған анықтамалық кесте?
Бұл тапсырманы орындаудың басқа да ақылды жолдары бар ма?

МІНДЕТТІ:
Access бағдарламасында ашылмалы тізім жасаңыз MySql-ден қосылған кесте.
Ашылмалы тізім сипаттамалары:
- санау pos.< 10штук
- мазмұны: OUT ATP POSITION 1, OUT ATP POSITION 2, OUT ATP POSITION 3,... OUT ATP POSITION 10
Ашылмалы тізімдегі деректер келесіден келуі керек:

немесе

ең қолайлы сценарий бойынша.

ОРНАТУ:
- КОМП 1
- MySql орталық мәліметтер базасынан орнатылған.
- Дерекқорда (МҚ) келесі бағандары бар Кесте_1 бар:

- COMP 2
- Access ODBC арқылы MySql деректер базасына клиент ретінде қосылады.

ШАРТТАРЫ:
- Access анықтамалық кестесі - №1 анықтамалық кесте (скриншотты қараңыз);
- MySql-ден қосылған анықтамалық кесте - №2 анықтамалық кесте (скриншотты қараңыз);
- MySql-ден қосылған кесте – клиенттік деректер қорының кестесі (скриншотты қараңыз);

Жауап:Пішінді нөлден құрастыру керек пе немесе менің мысалымды бөлшектеу керек пе, уақыт бірдей болады.

Шарлау жолағында негізгі кестені таңдаңыз. Жасау таспасында Пішін түймешігін таңдаңыз. Шебер сізге кестеңіздің барлық өрістері бар пішін жасайды.

Дизайн режиміне ауысу. Каталогтың құрама жолағынан мәндерді алуы керек өрісті табыңыз (оның тіркелген немесе жергілікті болуы маңызды емес - кіру үшін тіркелген кестелер көп жағдайда жергілікті кестелерден ерекшеленбейді, бұл дәл солай).

Осы өрісті тінтуірдің оң жақ түймешігімен нұқыңыз және «өрісті түрлендіру» - «комбо жолағын» таңдаңыз.

Алынған құрама жолақта сипаттарды өзгертіңіз:
Мәліметтер көзі – мұнда кесте атын немесе сұраныс атын немесе сұраныс мәтінін жазамыз
Байланыстырылған баған - 1 бар, әдетте ол осылай болуы керек (бұл идентификаторы немесе коды бар бағанның нөмірі, егер ол 1-ші болмаса - сұраудағы ретті өзгертуге немесе түзетуге болады байланысты бағанның нөмірі)
Бағандар саны әдетте 2, бірақ қажет болған жағдайда одан да көп болуы мүмкін
Баған ені - әдетте 0 жазылады ЕніҚажет немесе жай 0 - содан кейін код бар баған экранда көрінбейді, тек мәндер көрінеді. Егер сізде басқа бағандар саны немесе басқа реттілік болса, ені сәйкесінше реттеледі.

Жарайды, бәрі осы. Өрісті пайдалануға болады.

6 минуттан кейін қосылды

Хабарлама техник-сан

қол жеткізу үшін біріктірілген кестелер көп жағдайда жергілікті кестелерден ерекшеленбейді

Шын мәнінде, неге ысырап етпеудің нақты себептері жоқ Барлықбір ортақ дерекқордағы кестелер. Ыңғайлылық тұрғысынан даму бұрынғысынша болады. Ал жұмыс кезінде жалпы база сізді көптеген ақымақ жағдайлардан қорғайды.

Мысалы, Вася кездейсоқ анықтамалық кітапқа кіріп, ондағы барлық мәндерді өшіріп тастады (жүйе оған рұқсат берді, анықтамалық жергілікті). Сосын олар мені ұрсады деп қорықтым, мен ешкімге ештеңе айтпадым, жай отырып, барлық құндылықтарды қайта толтырдым. Мәтін ескі мәтінмен сәйкес келеді. Бірақ Вася кілттердің басқаша екенін білмейді. Содан кейін ол басталады: «Мен әрқашан таңдаған нәрсені таңдадым және бағдарлама «байланысты кестеде мұндай мән жоқ» қатесін жазады. Бұл болмайды деп ойлайсыз ба? Өз басым осындай тырмаға аяқ басқанмын

1 минуттан кейін қосылды
Сондықтан, егер бәрін бір дерекқорда орындау және тұтастықты қамтамасыз ететін сыртқы кілт шектеулерін орнату мүмкін болса, бұл опция жақсырақ,

Бұл мақалада біз Access сұрауларындағы есептелген өрістер туралы айтатын боламыз. Кесте сияқты сұрау бір немесе бірнеше өрістердің деректерін пайдаланып әрбір жазба үшін сандық, жолдық немесе күн мәндері бойынша есептеулерді орындай алады. Есептеу нәтижесі сұрау кестесінде жаңа есептелген өрісті құрайды. Есептелген кесте өрістерінен айырмашылығы, бастапқы дерекқор кестелеріндегі есептелген өрістер жаңа өрістерді жасамайды. Сұрау орындалған сайын ағымдағы өріс мәндері негізінде есептеулер жүргізіледі.

Есептелген өріс өрнектері өріс атауларына қосымша тұрақтылар мен функцияларды пайдалана алады. Өрнекті өңдеу нәтижесінде тек бір мәнді алуға болады.

1-тапсырма.ӨНІМ кестесінде ҚҚС қоса алғанда бағаны есептеңіз және оны ҚҚС қоса алғанда баға кестесінің есептелген өрісінде алынған бағамен салыстырыңыз.

  1. PRODUCT кестесі үшін дизайн режимінде таңдау сұрауын жасаңыз. Сұраныс пішініне NAME_TOV, PRICE, RATE_VAT және ҚҚС қосылған баға өрістерін сүйреп апарыңыз (4.6-сурет).
  2. ҚҚС қоса алғанда бағаны есептеу үшін Өріс жолының бос ұяшығына [PRICE]+[PRICE]*[RATE_VAT] өрнегін жазу арқылы есептелген өрісті жасаңыз.
  3. Есептелген өрісте мәні 5000-нан асатын жазбаларды таңдау үшін Шарт жолына > 5000 енгізіңіз.
  4. Өрнекті енгізгеннен кейін жүйе әдепкі бойынша есептелген өрістің атын 1 Өрнек жасайды, ол сұрау нәтижелері бар кестедегі баған тақырыбына айналады. Бұл атау [PRICE]+[PRICE]*[VAT_RATE] өрнегі алдында енгізіледі. Сұраудағы әрбір жаңа есептелген өріс үшін өрнек саны біреуге артады. Есептелген өрістің атауы өрнектен қос нүкте арқылы бөлінеді. Атын өзгерту үшін тінтуір курсорын сұрау пішінінің есептелген өрісіне қойып, тінтуірдің оң жақ түймешігін басыңыз. Мәтінмәндік мәзірден таңдаңыз Қасиеттер(Сипаттар) өрісінде және Тақырып жолында жаңа өріс атауын енгізіңіз - 1 ҚҚС қосқандағы бағасы. Енді сұрау нәтижелері бар кестеде бұл атау есептелген бағанның тақырыбында көрсетіледі. Өріс атауын тікелей сұрау пішінінде де түзетуге болады.
  5. Сұрау нәтижесін көрсету үшін түймені басыңыз ОрындауТопта (жүгіру). нәтижелер(Нәтижелер). Кесте мен сұраудың есептелген өрісі бірдей мәндерге ие.
  6. Сұраныс жазбаларының бірінде өнімнің бағасын өзгертіңіз. Есептелген екі өрістегі мәндер бірден қайта есептеледі.
  7. Есептелген өрісте немесе таңдау жағдайында күрделі өрнекті қалыптастыру үшін өрнек құрастырушыны қолданған жөн. Құрастырушы кестелерден, сұраулардан, операция белгілерінен және функциялардан өрнекке қажетті өріс атауларын таңдауға мүмкіндік береді. Есептелген өрістегі өрнекті алып тастаңыз және оны жасау үшін құрастырушыны пайдаланыңыз.
  8. Түймені басу арқылы Өрнек құрастырушыға қоңырау шалыңыз Құрылысшы(Құрылысшы) топта Сұрау орнату(Сұраныс орнату) таспасының дизайны немесе таңдау арқылы Құру(Құру) мәтінмәндік мәзірде. Тінтуір курсоры бұрын өрнек енгізу ұяшығында орналасуы керек.
  9. Терезенің сол жағында Өрнек құрастырушы(Өрнек құрастырушы) (4.7-сурет) сұрау негізделген PRODUCT кестесін таңдаңыз. Оң жақта оның өрістерінің тізімі көрсетіледі. Қажетті өрістер мен операторларды өрнекте екі рет басу арқылы кезекпен таңдаңыз. Өрнек терезенің жоғарғы жағында қалыптасады. Құрылысшы өріс атауының алдында өзі жататын кестенің атын көрсетіп, оны өріс атынан леп белгісімен бөлгенін ескеріңіз.
  10. OK түймесін басу арқылы есептелген өрісте өрнек құру процесін аяқтаңыз.
  11. Сұранымды ― ҚҚС қосылған баға деген атпен сақтаңыз және оны жабыңыз.
  12. Сақталғанды ​​шарлау аймағында таңдап, контекстік мәзірден Ашу пәрменін таңдау арқылы орындаңыз.


2-тапсырма.Есептелген өрістер мен сүзгі жағдайларында кірістірілген функцияларды пайдалануға болады. Access-те 150-ден астам функция анықталған.
Берілген айда жөнелтілген барлық шот-фактураларды таңдау қажет болсын. шот-фактурада жөнелту күні DATE_OTG өрісінде Күн/Уақыт деректер түрімен сақталады.

  1. шот-фактура кестесі үшін дизайн режимінде таңдау сұрауын жасаңыз. NOM_NAKL және CODE_SK өрістерін пішінге апарыңыз (4.8-сурет).
  2. Бос жол ұяшығында есептелген өрісті жасаңыз Өріс(Өріс) сол жерде өрнектердің бірін жазу арқылы: Формат([ИНВОИКА]![DISPOSITION_DATE];"мммм") - бұл функция айдың толық атауын қайтарады.
    немесе Формат([INBOOK]![DISPOSITION_DATE];"мм") - бұл функция ай нөмірін қайтарады.
  3. Берілген айда берілген шот-фактураларды таңдау үшін Таңдау шарты (шарттары) жолындағы есептелген жолға айдың атын, мысалы, наурызды (4.8-сурет) немесе ай нөмірін, мысалы, 3-ке сәйкес енгізіңіз. Формат функциясындағы параметр.
  4. Түймені басу арқылы сұрауыңызды аяқтаңыз ОрындауТопта (жүгіру). нәтижелер(Нәтижелер) таспа қойындысында Сұраныстармен жұмыс | Конструктор(Сұрау құралдары | Дизайн).
  5. Есептелген өріске Month(INVOICE!DATE_OTG) функциясын жазыңыз және бұл функция күннен алынған ай нөмірін қайтаратынына көз жеткізіңіз.
  6. Екінші тоқсанға қатысты барлық жолдарды таңдау үшін Шарттар жолында өрнек мәні көрсетілген интервалға түсетінін немесе келмейтінін анықтайтын 4 пен 6 арасындағы операторды енгізіңіз.
  7. Есептелген өріске MonthName(Month(INVOICE!DATE_OTG)) өрнегін жазыңыз және MonthName функциясы ай нөмірін оның толық атына түрлендіретініне көз жеткізіңіз.


Мұны күшейту үшін бейне оқулықты қараңыз.

Бұл мақала сұрау арқылы қайтарылған деректерді санау жолын сипаттайды. Мысалы, пішінде немесе есепте бір немесе бірнеше кесте өрістеріндегі немесе басқару элементтеріндегі элементтердің санын санауға болады. Сондай-ақ, орташа мәндерді есептеуге, ең жоғары және ең төменгі мәндерді, ең ескі және ең соңғы күнді табуға болады. Access сонымен қатар сұрау құрылымын өзгертпестен кестедегі деректерді есептеуге мүмкіндік беретін жалпы жол деп аталатын құралды ұсынады.

Қажетті әрекетті таңдаңыз

Мәліметтерді санау әдістері

Функцияның көмегімен өрістегі (мән бағанындағы) элементтердің санын санауға болады Сан. Функция Санжиынтық функциялар деп аталатын бірқатар функцияларға жатады. Жиынтық функциялар деректер бағандары бойынша есептеулерді орындайды және бір мәнді қайтарады. Функцияға қосымша Сан, Access бағдарламасының келесі жиынтық функциялары бар:

    сомасысандар бағандарын қосу;

    Орташасандар бағанының орташа мәнін есептеу;

    Максималдыөрістегі ең үлкен мәнді табу;

    Ең азөрістегі ең кіші мәнді табу;

    Стандартты ауытқуорташа мәнге қатысты мәндердің таралуын бағалау;

    Дисперсиябағандағы барлық мәндердің статистикалық дисперсиясын есептеу үшін.

Access функцияны қосудың екі жолын ұсынады Санаужәне басқа жиынтық функцияларды сұрауға енгізіңіз. Сен істе аласың:

    Деректер парағы көрінісінде сұрауды ашып, жалпы жолды қосыңыз. Жалпы жол оның құрылымын өзгертпей сұрау нәтижелеріндегі бір немесе бірнеше бағандарда жиынтық функцияларды пайдалануға мүмкіндік береді.

    Соңғы сұрауды жасаңыз. Жиынтық сұрау жазбалар топтары үшін аралық қорытындыларды есептейді. Мысалы, қала немесе тоқсан бойынша барлық сатылымдардың аралық жиынын есептегіңіз келсе, жазбаларды санат бойынша топтастыру үшін жиынтық сұрауды пайдаланасыз, содан кейін барлық сатылымдарды қосасыз. Екінші жағынан, деректердің бір немесе бірнеше бағандарының (өрістерінің) жалпы сомасын есептеу үшін жалпы жолды пайдалануға болады.

Ескерту:Осы мақаланың келесі бөлімдері функцияның қолданылуын егжей-тегжейлі сипаттайды. сомасы, бірақ жалпы жолдар мен сұрауларда басқа жиынтық функцияларды пайдалануға болатынын ескеріңіз. Басқа жиынтық функцияларды пайдалану туралы қосымша ақпарат алу үшін төмендегі бөлімді қараңыз.

Басқа жиынтық функцияларды пайдалану жолдары туралы қосымша ақпаратты қараңыз.

Келесі бөлімдер жалпы жолды қосу үшін орындау қажет қадамдарды сипаттайды және деректерді санау үшін жалпы сұрауды пайдалану жолын сипаттайды. функциясы екенін ескеріңіз Санбасқа жиынтық функцияларға қарағанда көбірек деректер түрлерімен жұмыс істейді. Функция Санкөп мәнді тізім өрісі сияқты күрделі, қайталанатын скаляр деректері барлардан басқа өрістің кез келген түрі үшін пайдалануға болады.

Екінші жағынан, көптеген жиынтық функциялар белгілі бір деректер түрі бар өрістердегі деректермен ғана жұмыс істейді. Мысалы, функция сомасыСан, нақты және валюта деректер түрлерімен ғана жұмыс істейді. Әрбір функция үшін қажетті деректер түрлері туралы қосымша ақпаратты төмендегі бөлімді қараңыз.

Деректер түрлері туралы жалпы ақпаратты Өрістің деректер түрін өзгерту бөлімінен қараңыз.

Жалпы жолды пайдаланып деректерді санау

Сұрауға жалпы жолды қосу үшін оны деректер парағы көрінісінде ашыңыз, жолды қосыңыз, содан кейін функцияны таңдаңыз. Саннемесе басқа жиынтық функция, мысалы сомасы, Ең аз, Максималдынемесе Орташа. Бұл бөлім қарапайым таңдау сұрауын жасау және жалпы жолды қосу жолын түсіндіреді.

Қарапайым таңдау сұранысын құру

Жалпы жолды қосу

Жалпы жолды жасыру

    Қойындыда үйТопта Жазбалартүймешігін басыңыз Нәтижелер.

Жалпы жолды пайдалану туралы қосымша ақпаратты Кестедегі баған бойынша қорытындыларды көрсету бөлімінен қараңыз.

Жиынтық сұрау арқылы деректерді санау

Сұрау арқылы қайтарылған жазбалардың кейбірін немесе барлығын санау қажет болғанда, жалпы жолдың орнына жалпы сұрауды пайдалануға болады. Мысалы, белгілі бір қаладағы транзакциялардың жалпы санын немесе транзакциялар санын санауға болады.

Әдетте есеп сияқты дерекқордың басқа бөлігінде нәтиже мәнін пайдаланғыңыз келгенде жиынтық сұрау жалпы жолдың орнына пайдаланылады.

Сұраудағы барлық жазбаларды санау

Топтағы немесе санаттағы жазбаларды санау

Жиынтық функциялар сілтемесі

Келесі кесте жалпы жолдар мен сұрауларда пайдалануға болатын Access жиынтық функцияларын тізімдейді және түсіндіреді. Access бағдарламасында жалпы жолдарға қарағанда сұраулар үшін көбірек жиынтық функциялары бар екенін есте сақтаңыз. Қосымша, Access жобасымен (Microsoft SQL Server дерекқорына қосылатын сыртқы Access дерекқоры) жұмыс істегенде, SQL Server қамтамасыз ететін жиынтық функциялардың жетілдірілген жинағын пайдалануға болады. Олар туралы қосымша ақпаратты Microsoft SQL Server Books Online бөлімінен қараңыз.

Функция

Сипаттама

Қолдау көрсетілетін деректер түрлері

сомасы

Бағандағы элементтерді қосады. Тек сандық және ақшалай деректер үшін жарамды.

Орташа

Баған үшін орташа мәнді есептейді. Бағанда сандық, ақшалай немесе күн немесе уақыт мәндері болуы керек. Функция бос мәндерді елемейді.

Сан

Бағандағы элементтердің санын санайды.

Көп мәнді тізім бағаны сияқты күрделі қайталанатын скаляр деректерден басқа барлық деректер түрлері.

Көп мәнді тізімдер туралы қосымша ақпаратты Көп мәнді өрістер оқулықтарындағы Көп мәнді өрістерді жасау және жою бойынша ең жақсы тәжірибелер бөлімін қараңыз.

Максималды

Ең жоғары мәні бар элементті қайтарады. Мәтіндік деректер үшін ең үлкен мән алфавиттегі соңғы мән болып табылады және Access регистрді ескермейді. Функция бос мәндерді елемейді.

«Сан», «Нақты», «Валюта», «Күн/Уақыт»

Ең аз

Ең кіші мәні бар элементті қайтарады. Мәтіндік деректер үшін ең кіші мән бірінші алфавиттік мән болып табылады, ал Access регистрді ескермейді. Функция бос мәндерді елемейді.

«Сан», «Нақты», «Валюта», «Күн/Уақыт»

Стандартты ауытқу

Мәндердің орташадан қаншалықты ауытқығанын көрсетеді.

Бұл мүмкіндік туралы қосымша ақпаратты кестеде баған бойынша қорытындыларды көрсету бөлімінен қараңыз.

«Сан», «Нақты», «Валюта»

Дисперсия

Бағандағы барлық мәндер үшін статистикалық дисперсияны есептейді. Тек сандық және ақшалай деректер үшін жарамды. Кестеде екі жолдан аз болса, Access бос мәнді қайтарады.

Дисперсияны есептеуге арналған функциялар туралы қосымша ақпаратты кестеде баған қорытындыларын көрсету бөлімінен қараңыз.

«Сан», «Нақты», «Валюта»

Microsoft Access дерекқор кестесіндегі жалпы соманы SQL сұрауын пайдаланбай есептеудің мысалы

Дерекқор кестесінде белгілі бір бағанның сандық мәндерінің қосындысын есептеу қажет болатын жағдайлар болады. Бұл үшін әртүрлі есептеу әдістері бар, олардың біреуіне негізделген сәйкес SQL сұрауын пайдалану.

Бұл тапсырмада мысал ретінде Microsoft Access кестесін пайдалану арқылы жалпы сома SQL сұрауын пайдаланбай есептеледі. Сонымен қатар, көрсетілген бағанның ұяшықтары мәндерінің орташа арифметикалық мәні есептеледі.

Осы мысалды пайдалана отырып, берілген бағанның бірнеше жазбалары бойынша кез келген сандық есептеуді жасауға болады.

Тапсырма

Нәтижесінде ConnectionString ADOConnection1 компонентінде қалыптасады (2-сурет). Бұл жол деректер провайдерінің түрін және дерекқор файлына толық жолды көрсетеді.

Күріш. 2. ADOConnection1 компонентінің ConnectionString

  1. Компонентті орнату ADOConnection1, ADOTable1, DataSource1, DBGrid1.

Дерекқор кестесін көрсету үшін келесі құрамдас сипаттарды конфигурациялау қажет:

– ADOConnection1 компонентінде LoginPrompt қасиеті = «жалған» (3-сурет) (деректер базасына кіру үшін пайдаланушы аты мен құпия сөзді сұрауды жою);

– ADOTable1 компонентінде Connection қасиеті = “ADOConnection1” (4-сурет);

– DataSource1 компонентінде DataSet қасиеті = “ADOTable1” (5-сурет);

– DBGrid1 компонентінде DataSource қасиеті = “DataSource1” (6-сурет);

– ADOTable1 компонентінде TableName = «Жұмысшы» қасиеті (7-сурет);

– DBGrid1 компонентінде Options қасиетінен dgEditing = false опциясын орнатыңыз (кесте ұяшықтарына деректерді DBGrid1 торынан тікелей енгізуге тыйым салу) (8-сурет).

Күріш. 3. ADOConnection1 компонентінің LoginPrompt қасиеті

Күріш. 4. ADOTable1 компонентінің қосылу қасиеті

Күріш. 5. DataSource1 компонентінің DataSet қасиеті

Күріш. 6. DBGrid1 компонентінің DataSource қасиеті

Күріш. 7. ADOTable1 компонентінің TableName қасиеті

Күріш. 8. DBGrid1 компонентінің Options қасиетінің dgEditing опциясы

  1. Кестені белсендіру.

Кестеде деректерді көрсету үшін келесі әрекеттерді орындау қажет (9-сурет):

– ADOTable1 кестесін таңдау;

– қасиеті Active = true.

Осыдан кейін кесте деректері DBGrid1-де көрсетіледі.

Күріш. 9. ADOTable1 компонентінің белсенді қасиеті

  1. Компонент өлшемдері мен пішіндерін орнату.

Келесі қадам 10-суретте көрсетілгендей пішіндегі компоненттердің өлшемдері мен орындарын реттеу болып табылады.

Күріш. 10. Негізгі өтініш формасы

  1. DBGrid1 ішіндегі ID_Worker өрісін жасыру.

Көрсетілген кестенің сыртқы түрі дұрыс болуы үшін ID_Worker өрісін жасыру керек, ол негізгі өріс болып табылады. Кестеде бұл өріс санауыш болып табылады. Жаңа жазбаны қосқанда, бұл өрістегі мән автоматты түрде жасалады (1-ге артады).

Алдымен контекстік мәзірден ADOTable1 компонентінің өріс редакторын («Өріс редакторы...») шақыру керек (Cурет 11).

Күріш. 11. ADOTable1 компонентінің өріс редакторын шақыру

Form1.ADOTable1 терезесі ашылады. Бұл терезеде тінтуірдің көмегімен контекстік мәзірді шақыру керек. Контекстік мәзірде «Барлық өрістерді қосу» пәрменін таңдаңыз.

Нәтижесінде редактор терезесі 12-суретте көрсетілгендей болады.

Күріш. 12. Өріс редакторы

Form1.ADOTable1 өріс редакторы Жұмысшы кестесінің барлық өрістерін көрсетеді. ID_Worker өрісін жою үшін ID_Worker жолын тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден Жою пәрменін таңдау керек. Осыдан кейін редакторды жабуға болады.

Нәтижесінде DBGrid1 кестесінде тек екі өріс көрсетіледі (Cурет 13).

Күріш. 13. Екі өрісі бар жұмысшы кестесін көрсету

  1. Жалақы өрісінде шығыс сүзгісін екі ондық таңбаға орнатыңыз.

Жалақы өрісінде сома мәні (2 ондық таңба) дұрыс көрсетілуі үшін келесі қадамдарды орындау қажет.

ADOTable1 компонентін таңдаңыз. Өріс өңдегішін 6-қадамда сипатталғандай «Өріс редакторы...» деп атаңыз. Нәтижесінде Аты және Жалақы екі өрістердің тізімі ашылады. Жалақы деп аталатын жолды таңдаңыз. ADOTable1Salary деп аталатын нысан Нысан инспекторында белсендіріледі.

Келесі қадам – Объектілер инспекторындағы «Дисплей пішімі» өрісін «0,00» мәніне орнату (Cурет 14).

Күріш. 14. ADOTable1 объектісінің Жалақы өрісінде шығыс форматын орнату

Қадамдарды орындағаннан кейін кестедегі Жалақы өрісі 2 үтірден тұратын дәлдікпен көрсетіледі.

  1. Ішкі айнымалыларды енгізу.

Қосындыны және орташа арифметикалық деректерді сақтау үшін TForm1 пішін сыныбының мәтініне sum және avg деп аталатын ішкі айнымалыларды енгізу керек.

Айнымалылар жеке бөлімге енгізіледі. TForm1 пішін сыныбына арналған код фрагменті келесідей көрінеді:

... түрі TForm1 = сынып(TForm) ADOConnection1: TADOConnection; DataSource1: TDataSource; ADOTable1: TADOTable; DBGrid1: TDBGrid; StaticText1: TStaticText; StaticText2: TStaticText; StaticText3: TStaticText; ADOTable1Name: TWideStringField; ADOTable1 Жалақы: TFloatField; процедура FormActivate(Жіберуші: TObject); процедура FormClose(Жіберуші: TObject; var Action: TCloseAction); жеке( Private declarations ) сома:нақты; // сома орташа: нақты; // орташа арифметикалық қоғамдық(Жария декларациялар) Соңы; ...
  1. Пішінді белсендіру оқиғасын бағдарламалау.

Пайдаланушы бағдарламаны жүктеп алғаннан кейін бірден кестелердегі қосындының және арифметикалық ортаның мәндерін есептеу керек.

Сондықтан Form1-тің OnActivate оқиғасын бағдарламалау керек. OnActivate оқиғасы бағдарлама орындау үшін іске қосылғаннан кейін пішін белсендірілген кезде шақырылады.

Delphi-де оқиғаларды бағдарламалаудың мысалы егжей-тегжейлі сипатталған.

Біздің жағдайда оқиға өңдеушісі келесідей көрінеді:

процедура TForm1.FormActivate(Жіберуші: TObject); var f:TFfield; // «Өріс» түріндегі қосымша айнымалы БАСТА // 1. Кестеде жазбалардың бар-жоғын тексеру егер ADOTable1.RecordCount = 0 содан кейін Шығу; // 2. DBGrid1 ішіндегі визуализацияны өшіріңіз ADOTable1.DisableControls; // 3. Жұмысшы кестесінің барлық жазбаларын қайталаңыз // 3.1. Бірінші жазбаға өтіңіз ADOTable1.First; // 3.2. Соманы нөлге қайтарыңызқосынды:= 0; // 3.3. Бірінші жазбадан жалақы мәнін алыңыз f:= ADOTable1.FieldByName("Жалақы"); // 3.4. Кестедегі жазбаларды айналдыру // - кестенің соңына жеткенін тексеру кезінде ADOTtable1.Eof<>расістеу БАСТА // 3.4.1. соманы көбейтуқосынды:= қосынды + f. Мән; // 3.4.2. Келесі жазбаға өтіңіз ADOTable1.Next; Соңы; // 4. Орташа арифметикалық мәнді есептеңіз ort:= сома / ADOTable1.RecordCount; // 5. TStaticText түріндегі жолдарды толтырыңыз StaticText1.Caption:= "Қосынды: " + FloatToStr(қосынды, ffFixed, 8, 2); StaticText2.Caption:= "Орташа жалақы: " + FloatToStr(орташа, ffFixed, 8, 2); // 6. DBGrid ішінде визуализацияны қосыңыз ADOTable1.EnableControls; Соңы;

Кейбір код фрагменттерін түсіндірейік.

DisableControls және EnableControls әдістері деректер жиынына (деректер базасына) қосылған көрнекі басқару элементтерін өшіру және қосу үшін жауап береді. DisableControls әдісін шақыру жазбалар арқылы итерациялау процесін айтарлықтай жылдамдатуы мүмкін, себебі ол қолданбаның әрбір жазба өзгерген кезде DBGrid1 басқару элементінің мазмұнын қайта сызу уақытын жоғалтуына жол бермейді.

Меншік

ADOTable1.RecordCount

кестедегі жазбалар санын көрсетеді.

ADOTable1.Бірінші

бірінші кесте жазбасын белсенді орнатады.

ADOTable1.FieldByName()

берілген өріс үшін TField типті объектіні алуға мүмкіндік береді. Содан кейін бұл объектте ағымдағы жазбадан ақпаратты алуға болады. Бағдарламада Жалақы өрісі жазбаларының мәндеріне қол жеткізу үшін TField түріндегі қосымша f айнымалысы қолданылады. Жалақы өрісінің ағымдағы жазбасындағы мәнді оқу үшін операторға қоңырау шалу жеткілікті

f. Мән

Меншік

ADOTtable1.Eof

кестенің соңына жеткенде ақиқат болады.

ADOTable1. Келесі

келесі кесте жазбасына көшуді жүзеге асырады.

Қосындының нәтижесі StaticText1 компонентінің Caption қасиетінде көрсетіледі.

Орташа арифметикалық мән StaticText2 компонентінің Caption қасиетінде көрсетіледі.

  1. Қолданбаны орындау үшін іске қосу.

Енді сіз қолданбаны іске қоса аласыз.