매개 변수에 특정 값이있는 경우에만 액세스 쿼리 기준 OR 문을 활성화하는 방법은 무엇입니까?

에밀 올슨

이 쿼리가 있습니다.

SELECT t_Data.ID, t_Data.Location, t_Data.[VG's], t_Data.BinSize, t_Data.Date, t_Data.Time, t_Data.RPM001, t_Data.POW001, t_Data.WSP001, t_Data.YAW001, t_Data.RPM002, t_Data.POW002, t_Data.WSP002, t_Data.YAW002
FROM t_Data
WHERE (((t_Data.Location)=[Forms]![f_Main]![LocationCombo]) AND ((t_Data.BinSize)=[Forms]![f_Main]![BinSizeCombo]) AND ((t_Data.POW001)>[Forms]![f_Main]![LowerLimit] And (t_Data.POW001)<[Forms]![f_Main]![UpperLimit]) AND ((t_Data.WSP001)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP001)<[Forms]![f_Main]![UpperLimitMs_Text] And (t_Data.WSP001)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP001)<[Forms]![f_Main]![UpperLimitMs_Text]) AND ((t_Data.YAW001)>=Sector1_dsp() And (t_Data.YAW001)<=Sector2_dsp()) AND ((t_Data.POW002)>[Forms]![f_Main]![LowerLimit_Text] And (t_Data.POW002)<[Forms]![f_Main]![UpperLimit_Text] And (t_Data.POW002)>[Forms]![f_Main]![LowerLimit_Text] And (t_Data.POW002)<[Forms]![f_Main]![UpperLimit_Text]) AND ((t_Data.WSP002)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP002)<[Forms]![f_Main]![UpperLimitMs_Text] And (t_Data.WSP002)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP002)<[Forms]![f_Main]![UpperLimitMs_Text]) AND ((t_Data.YAW002)>=Sector1_dsp() And (t_Data.YAW002)<=Sector2_dsp())) OR (((t_Data.Location)=[Forms]![f_Main]![LocationCombo]) AND ((t_Data.BinSize)=[Forms]![f_Main]![BinSizeCombo]) AND ((t_Data.POW001)>[Forms]![f_Main]![LowerLimit] And (t_Data.POW001)<[Forms]![f_Main]![UpperLimit]) AND ((t_Data.WSP001)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP001)<[Forms]![f_Main]![UpperLimitMs_Text] And (t_Data.WSP001)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP001)<[Forms]![f_Main]![UpperLimitMs_Text]) AND ((t_Data.YAW001)>=Sector3_dsp() And (t_Data.YAW001)<=Sector4_dsp()) AND ((t_Data.POW002)>[Forms]![f_Main]![LowerLimit_Text] And (t_Data.POW002)<[Forms]![f_Main]![UpperLimit_Text] And (t_Data.POW002)>[Forms]![f_Main]![LowerLimit_Text] And (t_Data.POW002)<[Forms]![f_Main]![UpperLimit_Text]) AND ((t_Data.WSP002)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP002)<[Forms]![f_Main]![UpperLimitMs_Text] And (t_Data.WSP002)>[Forms]![f_Main]![LowerLimitMs_Text] And (t_Data.WSP002)<[Forms]![f_Main]![UpperLimitMs_Text]) AND ((t_Data.YAW002)>=Sector3_dsp() And (t_Data.YAW002)<=Sector4_dsp()));

필드는 전화 YAW001YAW002풍력 터빈의 방향이다.

나는 북쪽에서 바람만 선택할 수있는 기능이있는 형태를 가지고 있고 북쪽은 0 도입니다. 동쪽은 90 도입니다.

문제는 각도가 0-> 360 도인 한 제대로 작동하는 한계가 있다는 것입니다. fx를 북쪽에서 90도 창으로보기로 선택하면 360-90 / 2에서 360 + 90 / 2 사이의 값이 필요합니다. 그런 다음 기준을 얻습니다.

Yaw001 > 315 AND Yaw001 < 405

하지만 필요한 값이 315도에서 45도 사이이므로 문제가 있습니다. 제한이 360을 초과하는 경우 기준은 다음과 같아야합니다.

Yaw001 > 315 OR Yaw001 < 45

이걸 어떻게 부수나요?

에도 동일하게 적용됩니다 Yaw002.

원하는 값이되도록 시스템을 시계 반대 방향으로 회전 할 수도 있습니다.

Yaw001 < -45 AND Yaw001 < 45

그리고 다시 가장 낮은 값은 0이므로

Yaw001 > 315 OR Yaw001 < 45

이 문을 OR에서 사용해 보았습니다.

IIf(Sector4_dsp()>360;<=Sector4_dsp()-360;<0)

그러나 그것이 사실이더라도 기준을 반환하지 않습니다 <=Sector4_dsp()-360.

여기에서 나를 따르기를 바랍니다.

감사합니다, Emil.

리스 존스

나는 MSAccess를 가지고 있지 않지만 모듈로 작업을 통해 필요한 것을 얻을 수 있습니까? SQL 쿼리에서 (angle MOD 360)을 사용하십시오. 예 : (-45 MOD 360) = 315, (405 MOD 360) = 45.

샘플 조건식 편집, 추가

북쪽의 양쪽에서 90 도의 호를 가정합니다.

direction = 0
min = (direction - 90/2 mod 360)
max = (direction + 90/2 mod 360)
Yaw001 = Yaw001 mod 360

그때

(min <= max and Yaw001 >= min and Yaw001 =< max) or (min > max and (Yaw001 > min or Yaw001 < max)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관