Sequalize для записи необработанного SQL-запроса на соединение

1
9

У меня есть этот запрос в sql,

Как я могу написать то же самое с помощью Sequalize в Nodejs?

Я пробовал это,

const query = `
            SELECT prdtl.pono, prdtl.desgcode, d.descr, g.grn_dt, 
              IFNULL(g.grnQty, 0) AS grnQty, 
              IFNULL(gd.gdnQty, 0) AS gdnQty 
            FROM po_orddtl prdtl 
            LEFT JOIN ismaster.desitem d ON d.desgcode = prdtl.desgcode
            LEFT JOIN (
              SELECT grn_dt, pono, desgcode, 
                IFNULL(SUM(pass_qty), 0) AS grnQty 
              FROM grn 
              GROUP BY pono, desgcode
            ) g ON g.pono = prdtl.pono AND g.desgcode = prdtl.desgcode
            LEFT JOIN (
              SELECT pono, desgcode, 
                IFNULL(SUM(gdn_qty), 0) AS gdnQty 
              FROM gdn 
              GROUP BY pono, desgcode
            ) gd ON gd.pono = prdtl.pono AND gd.desgcode = prdtl.desgcode
            WHERE prdtl.is_dead != 1 
            AND g.grn_dt <= :date
            GROUP BY prdtl.pono, prdtl.desgcode
        `;
const query = `
            SELECT prdtl.pono, prdtl.desgcode, d.descr, g.grn_dt, 
              IFNULL(g.grnQty, 0) AS grnQty, 
              IFNULL(gd.gdnQty, 0) AS gdnQty 
            FROM po_orddtl prdtl 
            LEFT JOIN ismaster.desitem d ON d.desgcode = prdtl.desgcode
            LEFT JOIN (
              SELECT grn_dt, pono, desgcode, 
                IFNULL(SUM(pass_qty), 0) AS grnQty 
              FROM grn 
              GROUP BY pono, desgcode
            ) g ON g.pono = prdtl.pono AND g.desgcode = prdtl.desgcode
            LEFT JOIN (
              SELECT pono, desgcode, 
                IFNULL(SUM(gdn_qty), 0) AS gdnQty 
              FROM gdn 
              GROUP BY pono, desgcode
            ) gd ON gd.pono = prdtl.pono AND gd.desgcode = prdtl.desgcode
            WHERE prdtl.is_dead != 1 
            AND g.grn_dt <= :date
            GROUP BY prdtl.pono, prdtl.desgcode
        `;
      const date = "2023-08-20"; // replace with your date
      const replacements = { date };
      const [results, metadata] = await sequelize.query(query, {
        replacements,
        type: QueryTypes.SELECT,
      });

Харитон
Вопрос задан21 мая 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.