mysql中的组和顺序
我必须编写一个需要给定输出的查询。 我尝试了不同的查询,但没有成功 实际数据: 我需要这样的输出: 查询如下:mysql中的组和顺序,mysql,database,Mysql,Database,我必须编写一个需要给定输出的查询。 我尝试了不同的查询,但没有成功 实际数据: 我需要这样的输出: 查询如下: SELECT VCD.id,VCD.effective_date, `VCD`.`charge_id`, `C`.`head`, `VCD`.`per`, `VCD`.`currency`, `VCD`.`amount`, `VCD`.`remarks` FROM `vendor_charge` `VC` INNER JOIN `vendor_charge_details` `V
SELECT VCD.id,VCD.effective_date, `VCD`.`charge_id`, `C`.`head`,
`VCD`.`per`, `VCD`.`currency`, `VCD`.`amount`, `VCD`.`remarks`
FROM `vendor_charge` `VC` INNER JOIN `vendor_charge_details` `VCD`
ON `VC`.`id` = `VCD`.`vc_id` LEFT JOIN `charges` `C`
ON `C`.`id` = `VCD`.`charge_id`
WHERE `VC`.`vendor_id` = '12' AND `VCD`.`effective_date` <= '2018-05-22'
GROUP BY `VCD`.`charge_id`, `VCD`.`per`, `VCD`.`currency`
ORDER BY `C`.`head` DESC
及
我认为您在这里所需要的只是一个子查询的附加连接,该子查询查找每个费用id的最新生效日期:
请花几分钟时间修改您的格式。然后,在问题中直接包含示例输入和输出数据。不要粘贴链接。@TimBiegeleisen我是新来的,我没有太多的徽章可以在direct post中包含图片。不要包含图片。时期以表格格式键入您的数据。好的,现在请帮助我。如果我想按“费用”\u id、per和currency列进行分组,那么该怎么办?生效日期取决于这三个参数。我不知道你在想什么。通常,只有在需要聚合某些内容时才使用GROUPBY,但您没有告诉我可能是什么。我建议开始一个新问题,因为这个问题已经得到了回答。堆栈溢出不是博客站点。
SELECT VCD.id,VCD.effective_date, `VCD`.`charge_id`, `C`.`head`,
`VCD`.`per`, `VCD`.`currency`, `VCD`.`amount`, `VCD`.`remarks`
FROM `vendor_charge` `VC` INNER JOIN `vendor_charge_details` `VCD`
ON `VC`.`id` = `VCD`.`vc_id` LEFT JOIN `charges` `C`
ON `C`.`id` = `VCD`.`charge_id`
WHERE `VC`.`vendor_id` = '12' AND `VCD`.`effective_date` <= '2018-05-22'
GROUP BY `VCD`.`charge_id`, `VCD`.`per`, `VCD`.`currency`
ORDER BY `VCD`.`effective_date` DESC
SELECT
VCD.id,
VCD.effective_date,
VCD.charge_id,
C.head,
VC.per,
VCD.currency,
VCD.amount,
VCD.remarks
FROM vendor_charge VC
INNER JOIN vendor_charge_details VCD
ON VC.id = VCD.vc_id
INNER JOIN
(
SELECT charge_id, MAX(effective_date) AS max_effective_date
FROM vendor_charge_details
GROUP BY charge_id
) t
ON VCD.charge_id = t.charge_id AND VCD.effective_date = t.max_effective_date
LEFT JOIN charges C
ON C.id = VCD.charge_id
WHERE VC.vendor_id = '12' AND VCD.effective_date <= '2018-05-22'
ORDER BY
C.head DESC;