Удалить дублирующиеся значения SQL, отдельные не работают
SELECT BM.PUser,
BM.Desc, BM.Price,
BM.Info,
CAST (CASE
WHEN BI.Closed = 'E' then BQ.Qty-BQ.Consign-(SUM(BD.QtySold))
ELSE BQ.Qty-BQ.Consign
END as int) as Stock
FROM BINVOICE BI
, BDETAIL BD
, BQTY BQ
, BMASTER BM
WHERE (BD.User = BI.User)
AND
(BQ.PartNo = BD.PartNo)
AND
(BQ.PartNo = BM.PartNo)
AND
(BM.Price > 0.01)
AND
(BM.Active = 'Y')
GROUP BY BM.PUser, BM.Price,
BM.Desc, BM.Info,
BQ.Consign, BQ.Qty,
BI.Closed
Моя проблема в том, что я хочу, чтобы отображался только один из каждого PUser, но некоторые из них появляются несколько раз. Я считаю, что дело, которое я сделал, - это то, откуда они пришли. Я не совсем уверен, как обойти это. Использование SELECT DISTINCT у меня не сработало. Любое руководство будет с благодарностью. Используется на NexusDB.
1 ответ
Используйте DistinctSELECT DISTINCT column_name,column_name
FROM table_name;
SELECT Distinct BM.PUser,
BM.Desc, BM.Price,
BM.Info,
CAST (CASE
WHEN BI.Closed = 'E' then BQ.Qty-BQ.Consign-(SUM(BD.QtySold))
ELSE BQ.Qty-BQ.Consign
END as int) as Stock
FROM BINVOICE BI
, BDETAIL BD
, BQTY BQ
, BMASTER BM
WHERE (BD.User = BI.User)
AND
(BQ.PartNo = BD.PartNo)
AND
(BQ.PartNo = BM.PartNo)
AND
(BM.Price > 0.01)
AND
(BM.Active = 'Y')
GROUP BY BM.PUser, BM.Price,
BM.Desc, BM.Info,
BQ.Consign, BQ.Qty,
BI.Closed