Aggregating existing query to work for multiple rowsCan I concatenate multiple MySQL rows into one field?Mysql performance with nested indicesspeed up this query ( join + mediumtext field)MySQL query optimization - increase speed and efficiencyMySQL Limit LEFT JOIN Subquery after joiningHow to select rows from one table and order it by the sum of a column from another table?Need help in SQL query performanceWhat is better in performance for 1-to-1 relationship: a new table or a VARCHAR column with a lot of empty entriesvoyager databases and MariaDB serverHow to optimize a select query with multiple left joins in a large database

Could George I (of Great Britain) speak English?

How to find volume from Washer method?

Do they have Supervillain(s)?

Change my first, I'm entertaining

Tex Quotes(UVa 272)

What is the best type of paint to paint a shipping container?

Why isn't "I've" a proper response?

Disambiguation of "nobis vobis" and "nobis nobis"

Does merkle root contain hashes of transactions from previous blocks?

How do I, an introvert, communicate to my friend and only colleague, an extrovert, that I want to spend my scheduled breaks without them?

Network helper class with retry logic on failure

Which cells to pick to get a pure sample of DNA without precise equipment?

Round towards zero

Prove your innocence

Are there any elected officials in the U.S. who are not legislators, judges, or constitutional officers?

Is for(( ... )) ... ; a valid shell syntax? In which shells?

Is gzip atomic?

What is a CirKle Word™?

Is there any way white can win?

How to find out the average duration of the peer-review process for a given journal?

Transposing from C to Cm?

Improving Performance of an XY Monte Carlo

How do proponents of Sola Scriptura address the ministry of those Apostles who authored no parts of Scripture?

Was it ever possible to target a zone?



Aggregating existing query to work for multiple rows


Can I concatenate multiple MySQL rows into one field?Mysql performance with nested indicesspeed up this query ( join + mediumtext field)MySQL query optimization - increase speed and efficiencyMySQL Limit LEFT JOIN Subquery after joiningHow to select rows from one table and order it by the sum of a column from another table?Need help in SQL query performanceWhat is better in performance for 1-to-1 relationship: a new table or a VARCHAR column with a lot of empty entriesvoyager databases and MariaDB serverHow to optimize a select query with multiple left joins in a large database






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















I have a ledger table, and right now I have the ability to find the date or NULL if someone is delinquent based on their payment history. I need a query that allows me to find all delinquent members instead of just a specific one.



I need the ability to run a query that gets any member that is delinquent and return to me the member_id and the date of delinquency.



Basically what the original query to find delinquency for a specific member does, just doing every member instead of a specific one.



I have tried:



SELECT DISTINCT member_id, created_at FROM member_ledger_items WHERE 
balance > 0 and id > (
IFNULL(
(SELECT id from member_ledger_items WHERE balance <= 0 and member_ledger_items.deleted_at is NULL GROUP BY member_id ORDER BY created_at, id desc LIMIT 1),
0
)
) and `member_ledger_items`.`deleted_at` is null GROUP BY member_id order by created_at asc, id asc;


This is the query to find if a specific member is delinquent:



select `created_at` from `member_ledger_items` where `member_id` = ? and `balance` > 0 and `id` > 
(
IFNULL(
(select `id` from `member_ledger_items` where `member_id` = ? and `balance` <= 0 and `member_ledger_items`.`deleted_at` is null order by `created_at` desc, `id` desc limit 1)
, 0)
)
and `member_ledger_items`.`deleted_at` is null order by `created_at` asc, `id` asc limit 1;


Here is the create syntax of the member_ledger_items table:



CREATE TABLE `member_ledger_items` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`member_id` int(10) unsigned NOT NULL,
`status` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`type` enum('credit','debit') COLLATE utf8_unicode_ci NOT NULL,
`category` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`memo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`amount` decimal(13,3) DEFAULT NULL,
`autopay` tinyint(1) DEFAULT NULL,
`late` tinyint(1) DEFAULT NULL,
`date` date NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`balance` decimal(13,3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=53596 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


I need rows with member_id and date of starting delinquency.



Is this possible?



Any help would be appreciated!










share|improve this question
































    0















    I have a ledger table, and right now I have the ability to find the date or NULL if someone is delinquent based on their payment history. I need a query that allows me to find all delinquent members instead of just a specific one.



    I need the ability to run a query that gets any member that is delinquent and return to me the member_id and the date of delinquency.



    Basically what the original query to find delinquency for a specific member does, just doing every member instead of a specific one.



    I have tried:



    SELECT DISTINCT member_id, created_at FROM member_ledger_items WHERE 
    balance > 0 and id > (
    IFNULL(
    (SELECT id from member_ledger_items WHERE balance <= 0 and member_ledger_items.deleted_at is NULL GROUP BY member_id ORDER BY created_at, id desc LIMIT 1),
    0
    )
    ) and `member_ledger_items`.`deleted_at` is null GROUP BY member_id order by created_at asc, id asc;


    This is the query to find if a specific member is delinquent:



    select `created_at` from `member_ledger_items` where `member_id` = ? and `balance` > 0 and `id` > 
    (
    IFNULL(
    (select `id` from `member_ledger_items` where `member_id` = ? and `balance` <= 0 and `member_ledger_items`.`deleted_at` is null order by `created_at` desc, `id` desc limit 1)
    , 0)
    )
    and `member_ledger_items`.`deleted_at` is null order by `created_at` asc, `id` asc limit 1;


    Here is the create syntax of the member_ledger_items table:



    CREATE TABLE `member_ledger_items` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `member_id` int(10) unsigned NOT NULL,
    `status` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    `type` enum('credit','debit') COLLATE utf8_unicode_ci NOT NULL,
    `category` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    `memo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    `amount` decimal(13,3) DEFAULT NULL,
    `autopay` tinyint(1) DEFAULT NULL,
    `late` tinyint(1) DEFAULT NULL,
    `date` date NOT NULL,
    `created_at` timestamp NULL DEFAULT NULL,
    `updated_at` timestamp NULL DEFAULT NULL,
    `deleted_at` timestamp NULL DEFAULT NULL,
    `balance` decimal(13,3) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=53596 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


    I need rows with member_id and date of starting delinquency.



    Is this possible?



    Any help would be appreciated!










    share|improve this question




























      0












      0








      0








      I have a ledger table, and right now I have the ability to find the date or NULL if someone is delinquent based on their payment history. I need a query that allows me to find all delinquent members instead of just a specific one.



      I need the ability to run a query that gets any member that is delinquent and return to me the member_id and the date of delinquency.



      Basically what the original query to find delinquency for a specific member does, just doing every member instead of a specific one.



      I have tried:



      SELECT DISTINCT member_id, created_at FROM member_ledger_items WHERE 
      balance > 0 and id > (
      IFNULL(
      (SELECT id from member_ledger_items WHERE balance <= 0 and member_ledger_items.deleted_at is NULL GROUP BY member_id ORDER BY created_at, id desc LIMIT 1),
      0
      )
      ) and `member_ledger_items`.`deleted_at` is null GROUP BY member_id order by created_at asc, id asc;


      This is the query to find if a specific member is delinquent:



      select `created_at` from `member_ledger_items` where `member_id` = ? and `balance` > 0 and `id` > 
      (
      IFNULL(
      (select `id` from `member_ledger_items` where `member_id` = ? and `balance` <= 0 and `member_ledger_items`.`deleted_at` is null order by `created_at` desc, `id` desc limit 1)
      , 0)
      )
      and `member_ledger_items`.`deleted_at` is null order by `created_at` asc, `id` asc limit 1;


      Here is the create syntax of the member_ledger_items table:



      CREATE TABLE `member_ledger_items` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `member_id` int(10) unsigned NOT NULL,
      `status` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
      `type` enum('credit','debit') COLLATE utf8_unicode_ci NOT NULL,
      `category` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `memo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `amount` decimal(13,3) DEFAULT NULL,
      `autopay` tinyint(1) DEFAULT NULL,
      `late` tinyint(1) DEFAULT NULL,
      `date` date NOT NULL,
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      `deleted_at` timestamp NULL DEFAULT NULL,
      `balance` decimal(13,3) NOT NULL,
      PRIMARY KEY (`id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=53596 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


      I need rows with member_id and date of starting delinquency.



      Is this possible?



      Any help would be appreciated!










      share|improve this question
















      I have a ledger table, and right now I have the ability to find the date or NULL if someone is delinquent based on their payment history. I need a query that allows me to find all delinquent members instead of just a specific one.



      I need the ability to run a query that gets any member that is delinquent and return to me the member_id and the date of delinquency.



      Basically what the original query to find delinquency for a specific member does, just doing every member instead of a specific one.



      I have tried:



      SELECT DISTINCT member_id, created_at FROM member_ledger_items WHERE 
      balance > 0 and id > (
      IFNULL(
      (SELECT id from member_ledger_items WHERE balance <= 0 and member_ledger_items.deleted_at is NULL GROUP BY member_id ORDER BY created_at, id desc LIMIT 1),
      0
      )
      ) and `member_ledger_items`.`deleted_at` is null GROUP BY member_id order by created_at asc, id asc;


      This is the query to find if a specific member is delinquent:



      select `created_at` from `member_ledger_items` where `member_id` = ? and `balance` > 0 and `id` > 
      (
      IFNULL(
      (select `id` from `member_ledger_items` where `member_id` = ? and `balance` <= 0 and `member_ledger_items`.`deleted_at` is null order by `created_at` desc, `id` desc limit 1)
      , 0)
      )
      and `member_ledger_items`.`deleted_at` is null order by `created_at` asc, `id` asc limit 1;


      Here is the create syntax of the member_ledger_items table:



      CREATE TABLE `member_ledger_items` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `member_id` int(10) unsigned NOT NULL,
      `status` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
      `type` enum('credit','debit') COLLATE utf8_unicode_ci NOT NULL,
      `category` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `memo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `amount` decimal(13,3) DEFAULT NULL,
      `autopay` tinyint(1) DEFAULT NULL,
      `late` tinyint(1) DEFAULT NULL,
      `date` date NOT NULL,
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      `deleted_at` timestamp NULL DEFAULT NULL,
      `balance` decimal(13,3) NOT NULL,
      PRIMARY KEY (`id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=53596 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


      I need rows with member_id and date of starting delinquency.



      Is this possible?



      Any help would be appreciated!







      mysql






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 27 at 20:29







      Jacob Hyde

















      asked Mar 27 at 17:51









      Jacob HydeJacob Hyde

      481 silver badge6 bronze badges




      481 silver badge6 bronze badges

























          1 Answer
          1






          active

          oldest

          votes


















          0















          SELECT `member_id`, 
          (SELECT `created_at`
          FROM `member_ledger_items` AS MLI2
          WHERE `balance` > 0
          AND MLI2.`member_id` = MLI.`member_id`
          AND `id` > ( Ifnull((SELECT `id`
          FROM `member_ledger_items` AS MLI3
          WHERE `balance` <= 0
          AND MLI3.`member_id` =
          MLI2.`member_id`
          AND MLI3.`deleted_at` IS NULL
          ORDER BY `created_at` DESC,
          `id` DESC
          LIMIT 1), 0) )
          AND MLI2.`deleted_at` IS NULL
          ORDER BY `created_at` ASC,
          `id` ASC
          LIMIT 1) AS created_date
          FROM `member_ledger_items` AS MLI
          GROUP BY `member_id`;


          Ended up being the solution






          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55383642%2faggregating-existing-query-to-work-for-multiple-rows%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0















            SELECT `member_id`, 
            (SELECT `created_at`
            FROM `member_ledger_items` AS MLI2
            WHERE `balance` > 0
            AND MLI2.`member_id` = MLI.`member_id`
            AND `id` > ( Ifnull((SELECT `id`
            FROM `member_ledger_items` AS MLI3
            WHERE `balance` <= 0
            AND MLI3.`member_id` =
            MLI2.`member_id`
            AND MLI3.`deleted_at` IS NULL
            ORDER BY `created_at` DESC,
            `id` DESC
            LIMIT 1), 0) )
            AND MLI2.`deleted_at` IS NULL
            ORDER BY `created_at` ASC,
            `id` ASC
            LIMIT 1) AS created_date
            FROM `member_ledger_items` AS MLI
            GROUP BY `member_id`;


            Ended up being the solution






            share|improve this answer





























              0















              SELECT `member_id`, 
              (SELECT `created_at`
              FROM `member_ledger_items` AS MLI2
              WHERE `balance` > 0
              AND MLI2.`member_id` = MLI.`member_id`
              AND `id` > ( Ifnull((SELECT `id`
              FROM `member_ledger_items` AS MLI3
              WHERE `balance` <= 0
              AND MLI3.`member_id` =
              MLI2.`member_id`
              AND MLI3.`deleted_at` IS NULL
              ORDER BY `created_at` DESC,
              `id` DESC
              LIMIT 1), 0) )
              AND MLI2.`deleted_at` IS NULL
              ORDER BY `created_at` ASC,
              `id` ASC
              LIMIT 1) AS created_date
              FROM `member_ledger_items` AS MLI
              GROUP BY `member_id`;


              Ended up being the solution






              share|improve this answer



























                0














                0










                0









                SELECT `member_id`, 
                (SELECT `created_at`
                FROM `member_ledger_items` AS MLI2
                WHERE `balance` > 0
                AND MLI2.`member_id` = MLI.`member_id`
                AND `id` > ( Ifnull((SELECT `id`
                FROM `member_ledger_items` AS MLI3
                WHERE `balance` <= 0
                AND MLI3.`member_id` =
                MLI2.`member_id`
                AND MLI3.`deleted_at` IS NULL
                ORDER BY `created_at` DESC,
                `id` DESC
                LIMIT 1), 0) )
                AND MLI2.`deleted_at` IS NULL
                ORDER BY `created_at` ASC,
                `id` ASC
                LIMIT 1) AS created_date
                FROM `member_ledger_items` AS MLI
                GROUP BY `member_id`;


                Ended up being the solution






                share|improve this answer













                SELECT `member_id`, 
                (SELECT `created_at`
                FROM `member_ledger_items` AS MLI2
                WHERE `balance` > 0
                AND MLI2.`member_id` = MLI.`member_id`
                AND `id` > ( Ifnull((SELECT `id`
                FROM `member_ledger_items` AS MLI3
                WHERE `balance` <= 0
                AND MLI3.`member_id` =
                MLI2.`member_id`
                AND MLI3.`deleted_at` IS NULL
                ORDER BY `created_at` DESC,
                `id` DESC
                LIMIT 1), 0) )
                AND MLI2.`deleted_at` IS NULL
                ORDER BY `created_at` ASC,
                `id` ASC
                LIMIT 1) AS created_date
                FROM `member_ledger_items` AS MLI
                GROUP BY `member_id`;


                Ended up being the solution







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 27 at 22:30









                Jacob HydeJacob Hyde

                481 silver badge6 bronze badges




                481 silver badge6 bronze badges





















                    Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







                    Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.



















                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55383642%2faggregating-existing-query-to-work-for-multiple-rows%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                    용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

                    155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해