2016-12-13 131 views
0

在我的表INVENTORY中有3列varchar代码,版本,说明。 e.g选择在列中具有相同值且在另一列中具有不同值的记录

code || version || description 
-------------------------- 
AS100 || 01 || description 
AS100 || 02 || description 
AS100 || 02 || description 
AS100 || 02 || description 
AS200 || 01 || description 
AS300 || 01 || description 
AS300 || 01 || description 

我要选择那些具有相同的产品和多个版本的产品。在上表中,该查询返回会:

AS100 - 01 - description
AS100 - 02 - description

我试图用HAVING声明,但我没有得到上述结果..

例如,我尝试这样做:

SELECT code, version, Count(*) FROM INVENTORY 
GROUP BY version 
HAVING Count(*) =1 

,但它会返回出现一次的所有代码。

我创建了一个SQLFIDDLE这里(我希望它扮演,有时页面冻结) 我的DB

CREATE TABLE "INVENTORY" (
    "code" VARCHAR, 
    "version" VARCHAR, 
    "description" VARCHAR 
) 


INSERT INTO INVENTORY (code, version, description) VALUES("AS100", "01", "description"); 
INSERT INTO INVENTORY (code, version, description) VALUES("AS100", "02", "description"); 
INSERT INTO INVENTORY (code, version, description) VALUES("AS100", "02", "description"); 
INSERT INTO INVENTORY (code, version, description) VALUES("AS100", "02", "description"); 
INSERT INTO INVENTORY (code, version, description) VALUES("AS200", "02", "description"); 
INSERT INTO INVENTORY (code, version, description) VALUES("AS300", "01", "description"); 
INSERT INTO INVENTORY (code, version, description) VALUES("AS300", "01", "description"); 
+1

你可以发布你使用的查询吗? –

+0

请包含此表的'.dump',这会让它更容易玩。 –

+0

@kiner_shah我试着从这里的解决方案http://stackoverflow.com/questions/2456747/sqlite-get-records-with-same-column-value与变体的方式。 – yaylitzis

回答

1

的小转储也许这就是你想要什么?

select *, count(*) from (select * from INVENTORY group by code, version) 
group by code 
having count(*)>1 

也就是说,首先要由感兴趣的两列汇总表,然后选择从该表中,其中也有代码至少两个不同值的行。

+0

您的方法适用于我!谢谢! – yaylitzis

+0

非常欢迎。祝你好运! –

相关问题