diesel icon indicating copy to clipboard operation
diesel copied to clipboard

Unable to group by date

Open kakalos12 opened this issue 11 months ago • 1 comments

Setup

Versions

  • **Rust:1.76.0
  • **Diesel:2
  • **Database:mysql
  • Operating System

Feature Flags

  • **diesel:2

Problem Description

Thanks so much for a great project. While working with a feature to sum all the user_transactions and create a statistics by date, I have a problem with the group_by function that I don't find any solution on the internet. Please help.

Thanks so much This code does not compile :

   user_transactions::table
        .group_by(date(user_transactions::created_at))
        .select((
            sum(user_transactions::cash),
            date(user_transactions::created_at),
        ))
        .filter(user_transactions::user_id.eq(user_id))
        .filter(user_transactions::transaction_type.eq(UserTransactionType::Commission))
        .load::<(i64, NaiveDate)>(conn)
        .await
       .map_err(anyhow::Error::from)

What are you trying to accomplish?

What is the expected output?

What is the actual output?

.select(( | ^^^^^^ the trait IsContainedInGroupBy<user_transactions::columns::created_at> is not implemented for functions::date_and_time::date::date<user_transactions::columns::created_at> --> app/src/repository/user_transaction.rs:48:10 | 48 | .select(( | ^^^^^^ the trait IsContainedInGroupBy<user_transactions::columns::created_at> is not implemented for functions::date_and_time::date::date<user_transactions::columns::created_at> | = help: the following other types implement trait IsContainedInGroupBy<T>: <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::updated_at> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::created_at> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::notes> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::status> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::amount> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::user_id> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::id> <withdrawals::columns::created_at as IsContainedInGroupBywithdrawals::columns::updated_at> and 1428 others note: required for user_transactions::columns::created_at to implement ValidGrouping<functions::date_and_time::date::date<user_transactions::columns::created_at>> --> app/src/schema.rs:316:9 | 316 | created_at -> Timestamp, | ^^^^^^^^^^ = note: 1 redundant requirement hidden = note: required for (sum<Integer, cash>, date<created_at>) to implement ValidGrouping<functions::date_and_time::date::date<user_transactions::columns::created_at>> = note: the full type name has been written to '/app/target/debug/deps/app-8840f9eb5889a010.long-type-1122692697415527159.txt' = note: required for SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, ..., ..., ..., ..., ...> to implement SelectDsl<(functions::aggregate_folding::sum::sum<diesel::sql_types::Integer, user_transactions::columns::cash>, functions::date_and_time::date::date<user_transactions::columns::created_at>)> = note: the full type name has been written to '/app/target/debug/deps/app-8840f9eb5889a010.long-type-17702273429917501699.txt'

Are you seeing any additional errors?

Steps to reproduce

Checklist

  • [x] This issue can be reproduced on Rust's stable channel. (Your issue will be closed if this is not the case)
  • [x] This issue can be reproduced without requiring a third party crate

kakalos12 avatar Feb 29 '24 15:02 kakalos12