Ішкі сұрауды қолданып, сұрауды басқа сұраудың ішіне немесе өрнекке орналастыру

Маңызды :  Осы мақаланы компьютер аударған, ескерту мәтінін қараңыз. Анықтама алу үшін осы мақаланың ағылшын тіліндегі нұсқасын осы жерден таба аласыз.

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

Ішкі сұрауды өрнек немесе SQL көрінісі ішінде SQL нұсқауында жазуыңызға болады.

Осы бөлімде

Сұраудың нәтижелерін жолақ ретінде басқа сұрауда қолдану

Ішкі сұрауды сұрау жолағына арналған шарт ретінде қолдану

Ішкі сұраумен бірге қолданылатын жалпы SQL кілтсөздері

Сұраудың нәтижелерін жолақ ретінде басқа сұрауда қолдану

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

Ескерту : Бүркеншік ат жолағы ретінде қолданылатын ішкі сұрау біреуден артық жолақ қайтармайды.

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

Northwind 2007 бағдарламасын орнату

  1. Microsoft Office түймешігін Түймешік суреті , одан кейін Жаңа түймешігін басыңыз.

  2. Сол жақ бөліктегі Үлгі санаттары астында Жергілікті үлгілер түймешігін басыңыз.

  3. Жергілікті үлгілер астында Northwind 2007 дегенді таңдап, одан кейін Жасау түймешігін басыңыз.

  4. Дерекқорды ашу үшін Northwind сатушылары бетіндегі (Жегілу бейнебеті нысан қойындысы) нұсқаулығын орындаңыз, одан кейін «Кіру» тілқатысу терезесін жабыңыз.

  1. Жасау қойындысындағы Кестелер тобында орналасқан Кесте белгішесін басыңыз.

  2. Кестені көрсету тілқатысу терезесіндегі Сұраулар қойындысын басып, Өнім тапсырыстары түймешігін екі рет басыңыз.

  3. Кестені көрсету тілқатысу терезесін жабыңыз.

  4. Өнім коды және Тапсырыс күні жолақтарын сұрау жасақтама торына қосу үшін, оларды екі рет басыңыз.

  5. Тордың Өнім коды бағанындағы Сұрыптау жолында Артуы бойынша сұрыптау пәрменін таңдаңыз.

  6. Тордың Тапсырыс күні бағанындағы Сұрыптау жолында Кемуі бойынша сұрыптау пәрменін таңдаңыз.

  7. Тордың үшінші бағанында Жолақ жолын тінтуірдің оң жақ түймешігімен басып, одан кейін мәтінмәндік мәзірде Ұлғайту пәрменін таңдаңыз.

  8. Ұлғайту тілқатысу терезесінде мына өрнектерді теріңіз немесе қойыңыз:

    Prior Date: (SELECT MAX([Order Date]) 
    FROM [Product Orders] AS [Old Orders]
    WHERE [Old Orders].[Order Date]
    < [Product Orders].[Order Date]
    AND [Old Orders].[Product ID]
    = [Product Orders].[Product ID])

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

  9. Тордың төртінші бағанындағы Жолақ жолында мына өрнектерді теріңіз:

Interval: [Order Date]-[Prior Date]

Өрнек сұрауды қолданып анықтаған алдыңғы күнді пайдаланып, өнімнің әр тапсырыс күні мен алдыңғы тапсырыс күні аралығын есептейді.

  1. Жасақтама қойындысындағы Нәтижелер тобында орналасқан Жегу түймешігін басыңыз.

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

    Ескерту : Өнім коды іздеу жолағы болып табылады және әдепкіде, Access бағдарламасы Өнім коды орнына іздеу мәндерін (бұл жағдайда, өнім атауы) көрсетеді. Бұл мәндерді өзгертсе де, сұрыптау ретін өзгертпейді.

  2. Northwind дерекқорын жабыңыз.

Беттің жоғары бөлігі

Ішкі сұрауды сұрау жолағына арналған шарт ретінде қолдану

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

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

  1. Northwind 2007.accdb файлын ашу және оның мазмұнын қосу.

  2. Кіру пішінін жабу.

  3. Жасау қойындысындағы Кестелер тобында орналасқан Кесте белгішесін басыңыз.

  4. Кестені көрсету тілқатысу терезесіндегі Кестелер қойындысында Тапсырыстар және Қызметкерлер түймешіктерін екі рет басыңыз.

  5. Кестені көрсету тілқатысу терезесін жабыңыз.

  6. Тапсырыстар кестесінде Қызметкер коды, Тапсырыс коды және Тапсырыс күні жолақтарын сұрау жасақтама торына қосу үшін, оларды екі рет басыңыз. Қызметкерлер кестесінде жасақтама торына Лауазым жолағын қосу үшін, оны екі рет басыңыз.

  7. Қызметкер коды бағанының Шарт жолын тінтуірдің оң жақ түймешігімен басып, мәтінмәндік мәзірде Ұлғайту пәрменін таңдаңыз.

  8. Ұлғайту жолағында мына өрнектерді теріңіз немесе қойыңыз:

    IN (SELECT [ID] FROM [Employees] 
    WHERE [Job Title]<>'Sales Representative')

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

  9. Жасақтама қойындысындағы Нәтижелер тобында орналасқан Жегу түймешігін басыңыз.

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

Беттің жоғары бөлігі

Ішкі сұраумен бірге қолданылатын жалпы SQL кілтсөздері

Ішкі сұраумен бірге қолданылатын бірнеше SQL кілтсөздері бар:

Ескерту : Бұл тізім толық емес. Ішкі сұрауда деректер анықтамасы кілтсөзінен басқа, кез келген SQL кілтсөзін қолдануыңызға болады.

  • БАРЛЫҒЫ    Ішкі сұрау арқылы қайтарылған әрбір жолға салыстырылған кезде жолдарды алып тастау үшін ҚАЙДА бөлімінде БАРЛЫҚ қолданасыз.

    Мысалы, колледжде студент деректерін сараптап жатырсыз. Студент кемінде орташа балл алуы керек. Мамандық сабақтары және оның орташа балы Мамандық сабақтары деп аталатын кестеде сақталады және студентке қатысты ақпараттар Студент_Жазбалары деп аталатын жолақта сақталады.

    Әр студенттің мамандық сабақтары төменгі орташа балдан асатын тізімді (және оның төменгі орташа балы) көру үшін мына сұрауды қолдануыңызға болады:

    SELECT [Major], [Min_GPA] 
    FROM [Majors]
    WHERE [Min_GPA] < ALL
    (SELECT [GPA] FROM [Student_Records]
    WHERE [Student_Records].[Major]=[Majors].[Major]);
  • КЕЗ КЕЛГЕН    Ішкі сұрау арқылы қайтарылған кемінде бір жолға салыстырылған кезде жолдарды алып тастау үшін ҚАЙДА бөлімінде КЕЗ КЕЛГЕН дегенді қолданыңыз.

    Мысалы, колледжде студент деректерін сараптап жатырсыз. Студент кемінде орташа балл алуы керек. Мамандық сабақтары және оның орташа балы Мамандық сабақтары деп аталатын кестеде сақталады және студентке қатысты ақпараттар Студент_Жазбалары деп аталатын жолақта сақталады.

    Әр студенттің мамандық сабақтары төменгі орташа балына сәйкес келмейтін тізімді (және оның төменгі орташа балы) көру үшін мына сұрауды қолдануыңызға болады:

    SELECT [Major], [Min_GPA] 
    FROM [Majors]
    WHERE [Min_GPA] > ANY
    (SELECT [GPA] FROM [Student_Records]
    WHERE [Student_Records].[Major]=[Majors].[Major]);

    Ескерту : Сонымен қатар сол мақсатқа ҚАЙСЫБІР кілтсөзін қолдануыңызға болады; ҚАЙСЫБІР кілтсөзі КЕЗ КЕЛГЕН кілтсөзімен синоним болып келеді.

  • БАР    Ішкі сұрау кемінде бір жол қайтару үшін ҚАЙДА бөлімінде БАР кілтсөзін қолданыңыз. Сонымен қатар ішкі сұрау ешқандай жолдарды қайтармауды көрсету үшін БАР дегенді ЖОҚ деп белгілеуіңізге болады.

    Мысалы, мына ішкі сұрау кемінде бір тапсырыста табылған өнім тізімін қайтарады:

    SELECT *
    FROM [Products]
    WHERE EXISTS
    (SELECT * FROM [Order Details]
    WHERE [Order Details].[Product ID]=[Products].[ID]);

    ЖОҚ кілтсөзін пайдалану кемінде бір тапсырыста табылмаған өнім тізімін қайтарады:

    SELECT *
    FROM [Products]
    WHERE NOT EXISTS
    (SELECT * FROM [Order Details]
    WHERE [Order Details].[Product ID]=[Products].[ID]);
  • ІШІНДЕ    Негізгі сұраудың ағымдық жолындағы мән ішкі сұрау қайтаратын орнатудың бөлігі болуын тексеру үшін ҚАЙДА бөлімінде ІШІНДЕ деп қолданыңыз. Сонымен қатар, негізгі сұраудың ағымдық жолындағы мән ішкі сұрау қайтаратын орнатудың бөлігі болмайтынын тексеру үшін ІШІНДЕ бөлімін ЖОҚ деп қолданыңыз.

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

    SELECT [Order ID], [Order Date]
    FROM [Orders]
    WHERE [Employee ID] IN
    (SELECT [ID] FROM [Employees]
    WHERE [Job Title]<>'Sales Representative');

    ІШІНДЕ ЖОҚ кілтсөзін қолдану арқылы осындай сұрауды былай да жазуға болады:

    SELECT [Order ID], [Order Date]
    FROM [Orders]
    WHERE [Employee ID] NOT IN
    (SELECT [ID] FROM [Employees]
    WHERE [Job Title]='Sales Representative');

Беттің жоғары бөлігі

Ескерту : Компьютер аудармасы бойынша ескерту мәтіні: Бұл мақала адам араласуынсыз, компьютерлік жүйе арқылы аударылды. Microsoft корпорациясы ағылшын тілінде сөйлемейтін пайдаланушыларға Microsoft өнімдері, қызметтері және технологиялары туралы мазмұннан жақсы әсер алу мақсатында көмектесу үшін осы компьютер аударламаларын ұсынады. Мақаланы компьютер аударғандықтан, сөздік, синтаксис немесе грамматика қателері болуы мүмкін.

Дағдыларды жетілдіру
Оқыту курсымен танысыңыз
Жаңа мүмкіндіктерге бірінші болып қол жеткізу
Office Insider бағдарламасына қосылу

Осы ақпарат пайдалы болды ма?

Пікіріңіз үшін рақмет!

Пікіріңізге рақмет! Сізді Office қолдау көрсету қызметіндегі агенттердің бірімен байланыстырған жөн болуы мүмкін.

×