Консультация № 67931
21.12.2006, 03:39
0.00 руб.
0 1 1
Господа эксперты!
Помогите составить SQL-запрос.

Имеются две таблицы - клиенты и и х личные дела (кейсы)

CLIENTS
===============
ClID NAME
===============
1 Вася
2 Петя
3 Шура
4 Люся

CASES
==================================
CsID ClID CsNum CsDat Active
==================================
1 1 54 12.05.06 False
2 1 98 01.08.06 True
3 3 18 13.01.05 True
4 4 105 18.11.06 False

У клиента может быть один или несколько кейсов, может и не быть ни одного.
Если кейсов несколько, только один из нх может быть активным.
Запрос должен выдать полный список клиентов (без повторов) с их активными
кейсами, если такие есть:

==========================================
Name ClID CsNum CsDat
==========================================
Вася 1 98 01.08.06
Петя 2 Null Null
Шура 3 18 13.01.05
Люся 4 Null Null
Спасибо.

Vitaly Grobshtein

Обсуждение

Неизвестный
21.12.2006, 06:20
общий
это ответ
Здравствуйте, Vitaly!

Если допустить, что у одного клиента не может быть двух Active=True только потому, что этого не может быть никогда :), то запрос будет такой:

SELECT * FROM CLIENTS A LEFT OUTER JOIN CASES B ON (A.CLID=B.CLID AND ACTIVE=‘TRUE‘) или

SELECT * FROM CLIENTS A LEFT OUTER JOIN CASES B ON (A.CLID=B.CLID AND ACTIVE) или

SELECT * FROM CLIENTS A LEFT OUTER JOIN CASES B ON (A.CLID=B.CLID AND ACTIVE=TRUE)

все зависит от Вашей СУБД.
Форма ответа