sql - 嵌套连接中的单行
问题描述
我有以下查询:
SELECT
COALESCE(purchase.entry.code,'') || coalesce(purchase.linentry.linecod,'') AS pkey,
purchase.entry.code,
purchase.linetry.linecod,
purchase.entry.date,
purchase.invoice.ninvoice,
purchase.invoice.dateinvoice,
gen.provider.code AS code1,
gen.provider.name,
gen.provider.name2,
gen.provider.vatno,
purchase.vlstinvoice.total,
purchase.vlstinvoice.vat,
purchase.vlstinvoice.totalVat
FROM
purchase.entry
JOIN
purchase.linentry ON purchase.linentry.codentry = purchase.entry.code
JOIN
purchase.lininvoice ON purchase.lininvoice.codlinentry = purchase.linentry.code
JOIN
purchase.invoice ON purchase.invoice.code = purchase.lininvoice.codinvoice
JOIN
gen.provider ON gen.provider.code = purchase.entry.codprovider
JOIN
purchase.vlstinvoice ON purchase.vlstinvoice.ninvoice = purchase.invoice.ninvoice
查询结果给了我重复的 entry.code 项。我需要每行中具有第一个或最后一个 linentry.linecod 的唯一 entry.code(因为每个 entry.code 都可以有多个 linentry.linecode)。
解决方案
使用distinct on
. 以下是第一个linecod
:
select distinct on (purchase.entry.code)
. . . -- rest of columns
from . . .
order by purchase.entry.code, purchase.linentry.linecod;
推荐阅读
- c# - 以所有者权限打开 ChildForm
- python - 获取以大列表开头的第一个值的最有效方法
- excel - 在具有行、列格式的单元格中复制索引公式
- java - 如何解压缩 pkAES-256 Deflate 加密的 zip 文件?
- arrays - 使用单选按钮上的索引存储数组对象单击反应
- visual-studio - 为什么我看不到调用层次结构窗口中调用了哪些方法?
- reactjs - 在继续之前如何保证我已从 api 收到数据?
- regex - 如何使用 \S+ 在正则表达式中仅排除两个符号
- javascript - 为什么我的 jquery 刷新会从我的 div 中创建单独的写入?
- python - python中3D表单的数据分析