を持っています。画像上のフィルタリングは、主キーは、私がいつか必要とされていない行を返すクエリを持って
SELECT TOP 100 PERCENT
ca.item_id, ca.FIELD_ID, ca.attr_val, ca.upd_dtt, ca.upd_usr
FROM
contract_attr ca
WHERE
EXISTS (SELECT 1
FROM contract_attr ca_326
WHERE ca.item_id = ca_326.item_id
AND ca_326.field_id = 326
AND ca_326.ATTR_VAL = 'Y')
UNION ALL
SELECT
ca.item_id, 9999, mf.[ITEM_NAME], '', ''
FROM
mfr mf
JOIN
contract_attr ca ON ca.attr_val = mf.[ITEM_PK]
ORDER BY
ca.item_id
ITEM_ID年代10-13のみ1行を有します。
私は、クエリからこれらの行をフィルタリングします。私は持っを追加することになってるそれを探している相手:
SELECT TOP 100 PERCENT
ca.item_id, ca.FIELD_ID, ca.attr_val, ca.upd_dtt, ca.upd_usr
FROM
contract_attr ca
WHERE
EXISTS (SELECT 1
FROM contract_attr ca_326
WHERE ca.item_id = ca_326.item_id
AND ca_326.field_id = 326
AND ca_326.ATTR_VAL = 'Y')
UNION ALL
SELECT
ca.item_id, 9999, mf.[ITEM_NAME], '', ''
FROM
mfr mf
JOIN
contract_attr ca ON ca.attr_val = mf.[ITEM_PK]
HAVING
COUNT(ca.item_id) > 1
ORDER BY
ca.item_id
しかし、私はこのエラーを取得していますし、理由を理解していない:
列は「contract_attr.ITEM_ID」選択リストに無効ですこれは集計関数またはGROUP BY句に含まれていないためです。
私が間違って何をやっていると私はそれをどのように修正するのですか?
あなたはおそらくサブクエリでの使用をしたい場合や、グループ化が十分であれば、group by節にそれを追加する必要があるため、他のフィールドがたくさんあります。 – scsimon
@scsimonあなたはサブクエリはあなたが全体を包む意味ないと言いますか? –
何かのような '... JOIN contract_attr ca ON ca.attr_val = mf。[ITEM_PK] INNER JOIN(item_idからSELECT item_id FROM contract_attr group(item_id)> 1)x.item_id = ca.item_id'あなたの組合の第2部。基本的に、これはそれを解決し、内側のものはパーフェクト@scsimon – scsimon