Skip to content

Commit 22bda6a

Browse files
committed
Modify : changed the syntax of execution of sql command for aggregate function
1 parent ded8168 commit 22bda6a

File tree

1 file changed

+23
-36
lines changed

1 file changed

+23
-36
lines changed

src/graphql/queries/member_queries.rs

Lines changed: 23 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -355,49 +355,36 @@ impl Lab {
355355
) -> Result<Vec<Aggregate>> {
356356
let pool = ctx.data::<Arc<PgPool>>().expect("Pool must be in context.");
357357

358-
// will give the total count
359-
let mut query = sqlx::QueryBuilder::new(
360-
r#"
361-
SELECT
362-
all_dates.date,
363-
p.present_count
364-
FROM (
358+
let results: Vec<Aggregate> = sqlx::query_as::<_, Aggregate>(
359+
"
365360
SELECT
366-
date,
367-
COUNT(*) AS total_count
368-
FROM attendance
369-
WHERE date BETWEEN "#,
370-
);
371-
372-
query.push_bind(start_date);
373-
query.push(" AND ");
374-
query.push_bind(end_date);
375-
query.push(" GROUP BY date ) AS all_dates ");
376-
377-
// sub query of present members joined with the above total countS
378-
query.push(
379-
"LEFT JOIN (
361+
all_dates.date,
362+
p.present_count
363+
FROM (
364+
SELECT
365+
date,
366+
COUNT(*) AS total_count
367+
FROM attendance
368+
WHERE date BETWEEN $1 AND $2
369+
GROUP BY date
370+
) AS all_dates
371+
LEFT JOIN (
380372
SELECT
381373
date,
382374
COUNT(*) AS present_count
383375
FROM attendance
384-
WHERE is_present = 't'
385-
AND date BETWEEN ",
386-
);
387-
query.push_bind(start_date);
388-
query.push(" AND ");
389-
query.push_bind(end_date);
390-
query.push(
391-
" GROUP BY date
376+
WHERE is_present = TRUE
377+
AND date BETWEEN $1 AND $2
378+
GROUP BY date
392379
) AS p
393380
ON all_dates.date = p.date
394-
ORDER BY all_dates.date;",
395-
);
396-
397-
let results: Vec<Aggregate> = query
398-
.build_query_as::<Aggregate>()
399-
.fetch_all(pool.as_ref())
400-
.await?;
381+
ORDER BY all_dates.date;
382+
",
383+
)
384+
.bind(start_date)
385+
.bind(end_date)
386+
.fetch_all(pool.as_ref())
387+
.await?;
401388

402389
Ok(results)
403390
}

0 commit comments

Comments
 (0)