簡體   English   中英

我在 sequelize.js 中遇到了一對多關聯的左外連接問題

[英]I have a problem with a one-to-many associated left outer join in sequelize.js

生成的代碼最終類似於 LEFT OUTER JOIN ... ON tableA.id = tableB.headerId。 它應該是 tableA.headerId = tableB.headerId。

這是我目前擁有的代碼:

        models.SalesOrdersLine.hasOne(models.SalesOrdersHeader, {
            foreignKey: 'salesOrderHeaderId',
            targetKey: 'salesOrderHeaderId'
        });

        let data = (await models.SalesOrdersLine.findAll({
            attributes:[
                'branchName',
                ['createdByName', 'salesPerson'],
                [Sequelize.fn('count', 
                    Sequelize.fn('distinct',
                        Sequelize.col('SalesOrdersLine.salesOrderHeaderId')
                    )
                ), 'uniqueTransactions'],
                [Sequelize.fn('count', Sequelize.col('*')), 'uniqueProducts'],
                [Sequelize.fn('sum', Sequelize.col('SalesOrdersLine.newSales')), 'sales'],
                [Sequelize.literal('sum(SalesOrdersLine.newSales) / 1.1'), 'salesExclGst'],
                [Sequelize.fn('sum', Sequelize.col('SalesOrdersLine.qty')), 'quantity'],
                [Sequelize.fn('sum', Sequelize.col('SalesOrdersLine.qtyShipped')), 'quantityShipped'],
                [Sequelize.literal('CASE WHEN COUNT(DISTINCT(SalesOrdersLine.salesOrderHeaderId)) = 0 THEN 0 ELSE COUNT(*)/COUNT(DISTINCT(SalesOrdersLine.salesOrderHeaderId)) END'), 'unitsPerTransaction'],
                [Sequelize.literal('CASE WHEN COUNT(DISTINCT(SalesOrdersLine.salesOrderHeaderId)) = 0 THEN 0 ELSE SUM(SalesOrdersLine.newSales)/COUNT(DISTINCT(SalesOrdersLine.salesOrderHeaderId)) END'), 'aveTransactionValue'],
            ],
            include: [{
                attributes: [['paymentAmount', 'paymentAmount']],
                model: models.SalesOrdersHeader,
            }],
            group : ['salesPerson'],
            order: Sequelize.literal('sales DESC'),
            where: whereObj,

            logging: console.log,
            raw: true,
        }));
models.SalesOrdersLine.hasOne(models.SalesOrdersHeader, {
   foreignKey: 'salesOrderHeaderId',
   sourceKey: 'salesOrderHeaderId'
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM