I am still very new to SQL and have seen many questions but I have not seen any answers to help me get my results. I have a query that I need to order the column REFDES in ascending order. Any help will be much appreciated. In the picture I provided you can see the REFDES column is not in ascending order.
<code>
WITH DistinctRefDes AS (
SELECT bom.PINBR,
bom.PITR,
bom.CINBR,
bom.CITR,
REPLACE(TRIM(bom.REFDES), ',', '') AS REFDES
FROM FILTD.PREFP110 bom
WHERE TRIM(bom.REFDES) <> ''
GROUP BY bom.PINBR,
bom.PITR,
bom.CINBR,
bom.CITR,
REPLACE(TRIM(bom.REFDES), ',', '')
),
OrderedRefDes AS (
SELECT PINBR,
PITR,
CINBR,
CITR,
REFDES
FROM DistinctRefDes
ORDER BY REFDES
),
DistinctRefDes2 AS (
SELECT PINBR,
PITR,
CINBR,
CITR,
LISTAGG(REFDES, ' ') WITHIN GROUP (ORDER BY REFDES) AS REFDES
FROM OrderedRefDes
GROUP BY PINBR,
PITR,
CINBR,
CITR
)
SELECT bom.PINBR AS "PNumber",
i2.ITDSC AS "PName",
bom.PITR AS "PRev",
bom.CINBR AS "CNumber",
itmrva.ITDSC AS "CDesc",
bom.CITR AS "CRev",
bom.QTYPR AS "Qty",
COALESCE(DistinctRefDes2.REFDES, '') AS REFDES,
itembl.MOHTQ
FROM AMFLIBD.PSTDTL bom
LEFT JOIN DistinctRefDes2
ON bom.PINBR = DistinctRefDes2.PINBR
AND bom.PITR = DistinctRefDes2.PITR
AND bom.CINBR = DistinctRefDes2.CINBR
AND bom.CITR = DistinctRefDes2.CITR
LEFT JOIN AMFLIBD.ITMRVA itmrva
ON bom.CINBR = itmrva.ITNBR AND bom.CITR = itmrva.ITRV
LEFT JOIN AMFLIBD.ITMRVA i2
ON bom.PINBR = i2.ITNBR AND bom.PITR = i2.ITRV
LEFT JOIN AMFLIBD.ITEMBL itembl
ON bom.CINBR = itembl.ITNBR AND itembl.HOUSE = 'MVS'
WHERE bom.PINBR = '980-218130-106'
AND bom.PITR = 'B'
ORDER BY bom.CINBR;
</code>
<code>
WITH DistinctRefDes AS (
SELECT bom.PINBR,
bom.PITR,
bom.CINBR,
bom.CITR,
REPLACE(TRIM(bom.REFDES), ',', '') AS REFDES
FROM FILTD.PREFP110 bom
WHERE TRIM(bom.REFDES) <> ''
GROUP BY bom.PINBR,
bom.PITR,
bom.CINBR,
bom.CITR,
REPLACE(TRIM(bom.REFDES), ',', '')
),
OrderedRefDes AS (
SELECT PINBR,
PITR,
CINBR,
CITR,
REFDES
FROM DistinctRefDes
ORDER BY REFDES
),
DistinctRefDes2 AS (
SELECT PINBR,
PITR,
CINBR,
CITR,
LISTAGG(REFDES, ' ') WITHIN GROUP (ORDER BY REFDES) AS REFDES
FROM OrderedRefDes
GROUP BY PINBR,
PITR,
CINBR,
CITR
)
SELECT bom.PINBR AS "PNumber",
i2.ITDSC AS "PName",
bom.PITR AS "PRev",
bom.CINBR AS "CNumber",
itmrva.ITDSC AS "CDesc",
bom.CITR AS "CRev",
bom.QTYPR AS "Qty",
COALESCE(DistinctRefDes2.REFDES, '') AS REFDES,
itembl.MOHTQ
FROM AMFLIBD.PSTDTL bom
LEFT JOIN DistinctRefDes2
ON bom.PINBR = DistinctRefDes2.PINBR
AND bom.PITR = DistinctRefDes2.PITR
AND bom.CINBR = DistinctRefDes2.CINBR
AND bom.CITR = DistinctRefDes2.CITR
LEFT JOIN AMFLIBD.ITMRVA itmrva
ON bom.CINBR = itmrva.ITNBR AND bom.CITR = itmrva.ITRV
LEFT JOIN AMFLIBD.ITMRVA i2
ON bom.PINBR = i2.ITNBR AND bom.PITR = i2.ITRV
LEFT JOIN AMFLIBD.ITEMBL itembl
ON bom.CINBR = itembl.ITNBR AND itembl.HOUSE = 'MVS'
WHERE bom.PINBR = '980-218130-106'
AND bom.PITR = 'B'
ORDER BY bom.CINBR;
</code>
WITH DistinctRefDes AS (
SELECT bom.PINBR,
bom.PITR,
bom.CINBR,
bom.CITR,
REPLACE(TRIM(bom.REFDES), ',', '') AS REFDES
FROM FILTD.PREFP110 bom
WHERE TRIM(bom.REFDES) <> ''
GROUP BY bom.PINBR,
bom.PITR,
bom.CINBR,
bom.CITR,
REPLACE(TRIM(bom.REFDES), ',', '')
),
OrderedRefDes AS (
SELECT PINBR,
PITR,
CINBR,
CITR,
REFDES
FROM DistinctRefDes
ORDER BY REFDES
),
DistinctRefDes2 AS (
SELECT PINBR,
PITR,
CINBR,
CITR,
LISTAGG(REFDES, ' ') WITHIN GROUP (ORDER BY REFDES) AS REFDES
FROM OrderedRefDes
GROUP BY PINBR,
PITR,
CINBR,
CITR
)
SELECT bom.PINBR AS "PNumber",
i2.ITDSC AS "PName",
bom.PITR AS "PRev",
bom.CINBR AS "CNumber",
itmrva.ITDSC AS "CDesc",
bom.CITR AS "CRev",
bom.QTYPR AS "Qty",
COALESCE(DistinctRefDes2.REFDES, '') AS REFDES,
itembl.MOHTQ
FROM AMFLIBD.PSTDTL bom
LEFT JOIN DistinctRefDes2
ON bom.PINBR = DistinctRefDes2.PINBR
AND bom.PITR = DistinctRefDes2.PITR
AND bom.CINBR = DistinctRefDes2.CINBR
AND bom.CITR = DistinctRefDes2.CITR
LEFT JOIN AMFLIBD.ITMRVA itmrva
ON bom.CINBR = itmrva.ITNBR AND bom.CITR = itmrva.ITRV
LEFT JOIN AMFLIBD.ITMRVA i2
ON bom.PINBR = i2.ITNBR AND bom.PITR = i2.ITRV
LEFT JOIN AMFLIBD.ITEMBL itembl
ON bom.CINBR = itembl.ITNBR AND itembl.HOUSE = 'MVS'
WHERE bom.PINBR = '980-218130-106'
AND bom.PITR = 'B'
ORDER BY bom.CINBR;
9