我有以下关系。
这是我的疑问:
sql = "SELECT DISTINCT g.ExeName, d.FileRec, d.RefDes, d.Title as [Component Title],
c.Title AS [Sheet Title], f.FileName, f.Title AS [Sim Schematic Title] FROM
(((((((Projects AS a INNER JOIN ProjectFile AS b ON a.RecNo=b.ProjectRec)
INNER JOIN Files AS c ON b.FileRec=c.RecNo)
INNER JOIN Components AS d ON c.RecNo=d.FileRec)
INNER JOIN CompP2Sim AS e ON d.RecNo=e.CompRec)
INNER JOIN p2Sim AS f ON e.p2SimRec=f.RecNo)
INNER JOIN ExeTable g ON f.ExeRec=g.RecNo)
INNER JOIN EffecP2Sim AS h ON f.RecNo=h.p2SimRec)
WHERE d.StandardRec = " + b.Tag + " and a.RecNo = " + cbModel.SelectedValue + "
AND c.SystemRec = " + (int)systemMode +
" AND d.RecNo IN (SELECT DISTINCT CompRec from CompP2Sim) AND h.ModelRec = " + cbModel.SelectedValue + " order by d.refdes";
但是通过这个查询,我仍然可以获得重复。我怎么能让P2Sim的RecNo成为DISTINCT。
结果如下:
重复相同的结果,我想得到的结果是没有重复的p2sim RecNo。在此结果中,文件rec不同,但它们都具有相同的P2Sim的RecNo。我试图对查询进行分组,但我不能。每次尝试运行它时都会出错。 " RefDes专栏不能被罚款。"在我想把()分组到不同的地方我不明白我得到了那个错误。
答案 0 :(得分:9)
select distinct
适用于整个行,而不仅仅是字段。 e.g。
SELECT DISTINCT foo, bar, baz
应该更多地阅读
SELECT DISTINCT(foo,bar,baz)
而不是:
SELECT DISTINCT(foo), NON-DISTINCT(bar), NON-DISTINCT(baz)
如果您希望某个特定字段在查询中是唯一的,那么您应该在该字段上group
。