기출따라잡기 문제2번
1. 쿼리디자인에서 하단 그리드 라인에 드래그 할떄 "성명"은 인원수를 구하기 위한 필드로 가져 왔다고 하는데
이렇게 해야 하는 이유가 뭔가요? 그리고 그냥 바로 입력하는건 안되나요?
2. 필드명에 인원수라고 수정해야할때 왜 인원수:성명 이렇게 적어야 하나요 ? 그냥 인원수라고 적으면 안되는건가요?
3. 수당필드도 조건을 필드명에 이어서 같이 적는 이유가 뭔가요?
4. 매개변수를 [ ] 안에 내용 적으면 되는걸로 알고 있는데 Like"*"&[aaaaaaaaaaa]&"*" 이런식으로 하는 이유가 뭔가요?
해설만으로 이해가 부족하니 자세히 설명 좀 부탁드려요
답변하러 돌아다니는 컴활1급도 따지 못한 고2입니다.
1. 실제로 인원수라는 필드가 존재하지 않기때문에
다른 필드에서 가져오는 것입니다.
성명말고도 다른걸로 가져오셔도 상관없는부분입니다.
인원수를 계산할 수만 있으면 되기 때문이죠.
성명의 개수가 사람의 인원수라고 생각할 수 있잖아요?
그래서 그런식으로 하는 겁니다.
2. 이건 책에도 나와있지만 자세히 설명드릴게요.
:(콜론)을 기준으로 왼쪽은 실제 쿼리에서 표시될 필드명이라고 생각하시면 되고,
오른쪽 그 필드명에 해당되는 값이라고 하시면 됩니다.
문제에서는 결과 필드명에 인원수라고 써져있습니다.
그런데 실제로 쿼리를 만들다보니 인원수라는 필드가 존재하지 않습니다.
그런데 사람의 성명의 개수가 인원수와 같다보니
성명필드의 개수값을 인원수로 삼고 싶은겁니다.
그래서 나타난 방법이
인원수: 성명 와 같은 방법입니다.
성명필드의 값을 인원수라는 필드명으로 표시하여 값을나타내겠다는 의미입니다.
3.그 조건이 결과 값이 즉 수당필드의 값이 되기 때문입니다.
마찬가지로 수당필드도 테이블에 존재하지 않는 필드명입니다.
그럼 수당필드도 어떤값을 받아서 표시를 해야합니다.
문제에서는 iif함수를 사용을 하여 성별이 F이면 뭐시기하고 M이면 뭐시기라고 표시하라
하였습니다.
조건을 따로 입력하는 경우는 해당 필드명이 존재하고 그 필드명에 값이 기본적으로 들어있을때입니다.
그리고 iif함수는 자체가 조건을 검사하여 값을 그에따라 주는 함수이므로
조건은 그 함수에서 필요한것이지 iif함수자체가 조건이라는 의미는 아닙니다.
단지 수당이라는 필드 값을 iif함수를 통해 값을 가져오는 것입니다.
4.문제보시면 매개변수의 이름은 부서이름의 일부를 입력 이런식으로 되어있습니다.
문제의의미를 잘 생각해보시면 해당되는 부서의 한글자만 쳐도 그값의 결과가 표시 되어야 한다는
의미가 됩니다.
왜냐하면 일부만 입력해도 그 부서를 표시하게 된다는 말이니까요.
그래서 쿼리에서도 LIke 라는 조건문이 있습니다.
Like 라는 조건문
LIke "*" & 값 & "*"
위와 같은 형태로 쓰입니다.
규칙으로 정해진 것입니다.
여기서 매개변수쿼리에대해 알아보자면
그저 [값 입력하세요] 이런식으로 조건을 작성하면
메세지박스에 값 입력하세요 라고 뜨면서
값을 입력하게 됩니다.
그럴시에는 자동적으로 입력된 값과 같은 결과를 찾아 표시하게 됩니다.
[]만 있을시는 자동적으로 = 과 같은 기능을 한다는 말이죠.
다른예로는 ' >=[숫자를 입력하세요] '
와 같이 사용하면 입력된 숫자와 같거나 보다 큰수를 표시한다는 의미를 가지게됩니다.
즉 50 이라고 입력하면
조건은 ' >=50 ' 와 같아진다는 의미입니다.
즉 매개변수쿼리는 값을 입력받아서
[]대신에 그값으로 매개변수를 대입한다라는 의미가 됩니다.
그래서 LIke 문을 이용할때는
Like "*" & [부서이름의 일부를 입력] & "*"
와 같이 쓰실 수 있다는 겁니다.
부족한 지식이었지만 도움이 되었길 바랍니다.
시나공답변이 하도 느리게오는 것을 알기때문에
아는거는 제가 답변드립니다.
-
*2018-02-02 21:13:42
답변하러 돌아다니는 컴활1급도 따지 못한 고2입니다.
1. 실제로 인원수라는 필드가 존재하지 않기때문에
다른 필드에서 가져오는 것입니다.
성명말고도 다른걸로 가져오셔도 상관없는부분입니다.
인원수를 계산할 수만 있으면 되기 때문이죠.
성명의 개수가 사람의 인원수라고 생각할 수 있잖아요?
그래서 그런식으로 하는 겁니다.
2. 이건 책에도 나와있지만 자세히 설명드릴게요.
:(콜론)을 기준으로 왼쪽은 실제 쿼리에서 표시될 필드명이라고 생각하시면 되고,
오른쪽 그 필드명에 해당되는 값이라고 하시면 됩니다.
문제에서는 결과 필드명에 인원수라고 써져있습니다.
그런데 실제로 쿼리를 만들다보니 인원수라는 필드가 존재하지 않습니다.
그런데 사람의 성명의 개수가 인원수와 같다보니
성명필드의 개수값을 인원수로 삼고 싶은겁니다.
그래서 나타난 방법이
인원수: 성명 와 같은 방법입니다.
성명필드의 값을 인원수라는 필드명으로 표시하여 값을나타내겠다는 의미입니다.
3.그 조건이 결과 값이 즉 수당필드의 값이 되기 때문입니다.
마찬가지로 수당필드도 테이블에 존재하지 않는 필드명입니다.
그럼 수당필드도 어떤값을 받아서 표시를 해야합니다.
문제에서는 iif함수를 사용을 하여 성별이 F이면 뭐시기하고 M이면 뭐시기라고 표시하라
하였습니다.
조건을 따로 입력하는 경우는 해당 필드명이 존재하고 그 필드명에 값이 기본적으로 들어있을때입니다.
그리고 iif함수는 자체가 조건을 검사하여 값을 그에따라 주는 함수이므로
조건은 그 함수에서 필요한것이지 iif함수자체가 조건이라는 의미는 아닙니다.
단지 수당이라는 필드 값을 iif함수를 통해 값을 가져오는 것입니다.
4.문제보시면 매개변수의 이름은 부서이름의 일부를 입력 이런식으로 되어있습니다.
문제의의미를 잘 생각해보시면 해당되는 부서의 한글자만 쳐도 그값의 결과가 표시 되어야 한다는
의미가 됩니다.
왜냐하면 일부만 입력해도 그 부서를 표시하게 된다는 말이니까요.
그래서 쿼리에서도 LIke 라는 조건문이 있습니다.
Like 라는 조건문
LIke "*" & 값 & "*"
위와 같은 형태로 쓰입니다.
규칙으로 정해진 것입니다.
여기서 매개변수쿼리에대해 알아보자면
그저 [값 입력하세요] 이런식으로 조건을 작성하면
메세지박스에 값 입력하세요 라고 뜨면서
값을 입력하게 됩니다.
그럴시에는 자동적으로 입력된 값과 같은 결과를 찾아 표시하게 됩니다.
[]만 있을시는 자동적으로 = 과 같은 기능을 한다는 말이죠.
다른예로는 ' >=[숫자를 입력하세요] '
와 같이 사용하면 입력된 숫자와 같거나 보다 큰수를 표시한다는 의미를 가지게됩니다.
즉 50 이라고 입력하면
조건은 ' >=50 ' 와 같아진다는 의미입니다.
즉 매개변수쿼리는 값을 입력받아서
[]대신에 그값으로 매개변수를 대입한다라는 의미가 됩니다.
그래서 LIke 문을 이용할때는
Like "*" & [부서이름의 일부를 입력] & "*"
와 같이 쓰실 수 있다는 겁니다.
부족한 지식이었지만 도움이 되었길 바랍니다.
시나공답변이 하도 느리게오는 것을 알기때문에
아는거는 제가 답변드립니다.