【发布时间】:2019-07-06 17:37:36
【问题描述】:
我有一个包含产品数据的表 (JobLog)。我希望能够检查某些字段是否可能已重新提交并输入了两次,但之前可能已被处理过。
我的代码如下:
SELECT A.ProductName, A.ProductCode, A.AmtHeld, A.Disposition
FROM
JobLog AS A
INNER JOIN (
SELECT ProductCode, AmtHeld
FROM JobLog GROUP BY ProductCode, AmtHeld
HAVING COUNT(*) > 1
) AS B
ON (A.ProductCode = B.ProductCode)
AND (A.AmtHeld = B.AmtHeld)
它输出:
|ProductName | AmtHeld | ProductCode | Disposition|
|------------|---------|-------------|------------|
| chocolate | 123 | 500 | P |
|------------|---------|-------------|------------|
| chocolate | 123 | 500 | C |
|------------|---------|-------------|------------|
| vanilla | 355 | A30 | C |
|------------|---------|-------------|------------|
| vanilla | 355 | A30 | C |
|------------|---------|-------------|------------|
有什么方法可以有一个附加参数,它只输出具有 Disposition = P 作为行的一部分的行?例如,我只想要两种巧克力产品的输出,因为其中一种具有 P 的性格,而不是两种香草,因为它们都具有 C 的性格(没有 P)。
|ProductName | AmtHeld | ProductCode | Disposition|
|------------|---------|-------------|------------|
| chocolate | 123 | 500 | P |
|------------|---------|-------------|------------|
| chocolate | 123 | 500 | C |
|------------|---------|-------------|------------|
提前致谢!
【问题讨论】: