0
dwarfadelic
30.09.15
✎
14:54
|
2 таблицы могут соединяться в запрос
[SRC] SELECT RptSheet.P21, RptSheet.P22, RptSheet.P27, RptSheet2.P14, RptSheet2.P15
FROM RptSheet LEFT JOIN RptSheet2 ON RptSheet.P5 = RptSheet2.P4;
[/SRC]
P22 - деталь Р27 - тип детали Р14 - фирма если есть Р15 - доп строка
результат см рисунок во вложении. Нужно сделать выборку чтобы в ней было вычисляемое поле которое выдавало
по каждой фирме (столбец P22) либо столбец P14 при условии что среди принадлежащих ей строк есть строка равная PBE в противном случае либо столбец P14 если P27=ПР иначе пустую строку .
Писать типа
[SRC]SELECT Iif(EXISTS(SELECT * FROM RptSheet2 WHERE P15='PBE'),P14, ... )[/SRC] не проканывает
[SRC]
SELECT DISTINCT RptSheet.P27 as r1, RptSheet.P22 as r2, IIf(RptSheet2.P15='PBE',RptSheet2.P14,IIf(RptSheet.P27='ПР' OR RptSheet.P27='М','Куплен','')) AS State
FROM RptSheet INNER JOIN RptSheet2 ON RptSheet.P5=RptSheet2.P4;[/SRC] тоже мало
|
|
5
dwarfadelic
30.09.15
✎
15:17
|
Близок к победе пишу
SELECT DISTINCT t1.P27, t1.P22, IIf(Exists (SELECT * FROM RptSheet2 WHERE t1.P5=RptSheet2.P4 AND RptSheet2.P15='PBE' ),'P14',IIf(Exists (SELECT * FROM RptSheet2 WHERE t1.P5=RptSheet2.P4 AND (t1.P27='ПР' OR t1.P27='М') ),'Куплен','')) AS Выражение1
FROM RptSheet AS t1;
Близко. Только как получить сам P14 ?
|
|