Dirk Bahle
Было бы лучше, если бы вы могли определить 2 таблицы с точки зрения их строк и критериев объединения - оператор create table для каждой из них был бы лучше всего, потому что в противном случае вам будет трудно помочь, так как вы не детализируете, что вы пробовали и что было сообщением об ошибке :-(
Вы правы, select distinct можно использовать для извлечения строк с различными (уникальными) значениями, но вы должны быть осторожны с теми строками, которые встречаются в обеих таблицах. Обязательно всегда указывайте таблицу, к которой вы благоговеете:
Select distinc m.Field1, d.Field2
From MasterTable m
INNER JOIN DetailTable d
on m.key = d.key
WHERE Criteria
Как насчет утверждения, подобного приведенному выше, где выбранное поле указывается с определенной таблицей m или d для
Мастер и
DetailTable- Это работает? Если нет, то каков конкретный дизайн таблицы, оператор запроса и сообщение об ошибке?
Что же касается самого
group by
это также полезно для выбора отдельных строк, но обычно используется только тогда, когда вы хотите подсчитать вещи, такие как дублирование строк или определение значений min() или max (). Типичное использование похоже на приведенное выше утверждение, но с
group by clause
и вы должны использовать дополнительную осторожность, чтобы
выберите только те значения, которые также присутствуют в предложении group by (min() или max(), или sum()) могут быть выбраны без необходимости быть в предложении group by per se). Так как насчет такого заявления:
Select m.Field1, d.Field2, count(*)
From MasterTable m
INNER JOIN DetailTable d
on m.key = d.key
WHERE Criteria
group by m.Field1, d.Field2
Это работает? Если нет, то каков конкретный дизайн таблицы, оператор запроса и сообщение об ошибке?