-1
주어진 (처방전) 시작일과 종료일 사이의 모든 날짜를 나열해야합니다 (훨씬 더 큰 쿼리의 일부로).MySQL - 세션 변수를 사용하여 주어진 두 날짜 사이의 모든 날짜를 나열하십시오.
Table name: patientprescription
Start date field: prescriptionstartdate
End date field: prescriptionenddate
세션 변수를 사용하려고합니다. 하지만 변수에 초기 값을 설정하는 것이 어렵다는 것을 알게되었습니다. 첫 번째 실행은 아무런 결과도 가져 오지 않지만 후속 실행은 정확한 결과를 제공합니다 (첫 번째 실행은 변수를 설정하기 때문에). 나의 필요를 단순화하기 위해
, 여기에 내 질문의 요점입니다 :
SELECT
@gg := DATE_ADD (@gg, INTERVAL 1 DAY) AS rxDate
FROM patientprescription AS rx
JOIN (SELECT @gg := @hh FROM t1) AS v1 ON @hh := rx.prescriptionstartdate
WHERE
rx.id = 8
AND @gg <= rx.prescriptionenddate;
T1 몇 가지 기록을 일부 테이블입니다.
은 실행 후 다시 변수를 재설정하려면 : 나는 변수로이를 얻을 수 있었다SELECT @gg := NULL, @hh := NULL;
가능한 복제 [mysql을 선택 쿼리에서 두 날짜 사이의 날짜의 목록을 얻는 방법 (https://stackoverflow.com/questions/9295616/how-to-get-list-of-dates-between -two-dates-in-mysql-select-query) – GurV
링크를 가리켜 주셔서 감사합니다. 나는 그것을보고있다. 그 외에도 변수를 사용하여 위의 쿼리와 동일한 결과를 얻을 수 있습니까? –
아직도 고생하고 있습니까? https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query를 참조하십시오. – Strawberry