criteria progress
This commit is contained in:
@@ -164,5 +164,58 @@ int main() {
|
||||
in( iPT.payload_id, query::query::select({ temp_id_col }).from( temporary ) )
|
||||
)
|
||||
.str( conn->dialect() );
|
||||
|
||||
// const QString statement = QString( "SELECT %5 FROM %1 "
|
||||
// "LEFT JOIN (SELECT %2, MAX(%3) AS lastSuccessfulLogin FROM %1 WHERE %4 = ? GROUP BY %2) ll "
|
||||
// "ON %1.%2 = ll.%2 "
|
||||
// "WHERE (lastSuccessfulLogin IS NULL OR %3 <= lastSuccessfulLogin) AND %3 < ?" )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().tableName() )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::userAttributeId() ) )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::timestampAttributeId() ) )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::failReasonSqlAttributeId() ) )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::idAttributeId() ) );
|
||||
|
||||
const auto q = query::query::select({LOGIN_HISTORY.client, query::max(LOGIN_HISTORY.login_time).as( "lastSuccessfulLogin" ) } )
|
||||
.from( LOGIN_HISTORY )
|
||||
.where( LOGIN_HISTORY.fail_reason == _ )
|
||||
.group_by( LOGIN_HISTORY.client );
|
||||
// .as_table("ll");
|
||||
|
||||
const auto stmt3 = query::query::select({ LOGIN_HISTORY.client })
|
||||
.from( LOGIN_HISTORY )
|
||||
.join_left(q/*, "ll"*/ )
|
||||
.on( LOGIN_HISTORY.client == "ll.client" )
|
||||
.where( query::is_null("lastSuccessfulLogin") && LOGIN_HISTORY.login_time < "ll.lastSuccessfulLogin" )
|
||||
.str( conn->dialect() );
|
||||
|
||||
std::cout << stmt1 << std::endl;
|
||||
std::cout << stmt2 << std::endl;
|
||||
std::cout << stmt3 << std::endl;
|
||||
|
||||
// const QString subQuery = QString( "SELECT MAX(%1) AS lastSuccessfulLogin, %3 FROM %2 "
|
||||
// "WHERE(%4 = ? OR %4 = ? OR %4 = ?) AND %3 = ? GROUP BY %3 " );
|
||||
//
|
||||
// const QString statement = QString( "SELECT MAX(t1.%1) AS LAST_FAILED_LOGIN FROM %2 t1 LEFT JOIN"
|
||||
// "(%0) t2 "
|
||||
// "ON t1.%3 = t2.%3 "
|
||||
// "WHERE(t2.lastSuccessfulLogin IS NULL OR t2.lastSuccessfulLogin < t1.%1) "
|
||||
// "AND (t1.%4 = ? OR t1.%4 = ?) "
|
||||
// "AND t1.%3 = ?" )
|
||||
// .arg( subQuery )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::timestampAttributeId() ) )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().tableName() )
|
||||
// .arg( columnFilterName )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::failReasonSqlAttributeId() ) );
|
||||
//
|
||||
// QSqlQuery query( sqlDatabase() );
|
||||
// if ( query.prepare( statement ) ) {
|
||||
// query.addBindValue( LoginHistory::FailReason::NoFailReason );
|
||||
// query.addBindValue( LoginHistory::FailReason::NoScenarioForUser );
|
||||
// query.addBindValue( LoginHistory::FailReason::UserLockedByAdmin );
|
||||
// query.addBindValue( columnFilterValue );
|
||||
// query.addBindValue( LoginHistory::FailReason::WrongPassword );
|
||||
// query.addBindValue( LoginHistory::FailReason::UnknownUserName );
|
||||
// query.addBindValue( columnFilterValue );
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user