有人可以帮助我编写SQL查询来计算/显示以下示例:
桌子 - 发货
列 - 产品代码/数量/唯一代码
sku a | 5 | nnnn
sku a | 5 | nn
sku a | 10 | (blank)
sku b | 2 | nnn
sku c | 2 | (blank)
sku c | 2 | (blank)
Run Code Online (Sandbox Code Playgroud)
我正在寻找这样的输出:
列 - 产品代码/数量/唯一代码
sku a | 20 | nnnn, nn
sku b | 2 | nnn
sku c | 4 | (blank)
Run Code Online (Sandbox Code Playgroud)
LISTAGG是你的救世主.
SELECT
product_code,
SUM(qty) as total_qty,
LISTAGG(unique_code, ',') WITHIN GROUP (ORDER BY unique_code)
FROM
shipment
GROUP BY
product_code
Run Code Online (Sandbox Code Playgroud)
编辑:在这里给出答案以获得更好的代码输出:
你有"我".在listagg中的字段前面,但是没有表别名.此外,您需要将pallet_id添加到组中.试试这个
SELECT
reference_id,
pallet_id,
SUM(update_qty) as total_qty,
LISTAGG(user_def_type_1, ',') WITHIN GROUP (ORDER BY user_def_type_1)
FROM
inventory_transaction
WHERE
code = 'Shipment' AND site_id = 'GBRUN2A' AND client_id = '021' AND dstamp >= current_date -21
GROUP BY
reference_id, pallet_id
Run Code Online (Sandbox Code Playgroud)
如果您仍然收到错误,可以确认您使用的是Oracle吗?我很确定这是一个仅限Oracle的功能.
是 - 使用Oracle Sql Developer版本4.0.1.14
ETA:您能否确认您正在运行的Oracle数据库版本?Listagg仅适用于Oracle 12c和Oracle 11g第2版.如果您运行的是以前的版本,请查看其他一些备选方案.
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |