目前,我有一个查询返回父记录的父数据,父记录的子表记录子集等于某些值.但是,我想缩小它以仅返回具有特定值的子节点的父记录,但是那些是属于给定父节点的唯一子记录,或者子记录的数量不超过给定总计的子记录.
这是一个示例查询,只能让我到达我需要的位置的一半:
SELECT parent.item1, parent.item2, parent.index
FROM parent
INNER JOIN child on parent.index = child.index
WHERE child.value IN (11111111, 33333333)
GROUP BY parent.item1, parent.item2, parent.index
HAVING COUNT(child.value) = 2
Run Code Online (Sandbox Code Playgroud)
不幸的是,此查询返回任何父级的数据,该数据具有"IN"语句中包含的已识别值的子集.我只希望父记录的父记录数据的子记录总数不超过一定数量(或者,在我的情况下,不要超过"IN"语句中的值数.是否有一种简单的方法可以实现这一点?
我有一个SQL 2000存储过程,它有一个输入参数,数据类型为varchar(17),用于处理字母数字的车辆标识符(VIN).但是,每当我在执行时输入参数值时,如果参数中包含数字,则会给出错误.它似乎只接受字母字符.我在这做错了什么?