Проблема с присоединенным столбцом

orehov_i
Дата: 19.12.2011 08:58:24
Есть вот такой запрос
SELECT DISTINCTROW tblInkasClient.[Группа], tblInkasClient.Клиент, tblInkasSumma.ПодраздКлиента, Sum(tblCard.ПроинкасСумма) AS ПроинкасСумма, Sum(tblCard.[МешочМонет]) AS МонетМешочков, tblInkasClient.ВидТарифа, Magaziny.КодТарифа, Magaziny.Тариф, tblInkasSumma.КоличЗаездов, tblInkasClient.КоличТочек, IIf([color=yellow]Magaziny.КодТарифа=5[/color],Magaziny.Тариф*tblInkasClient.КоличТочек,IIf(Magaziny.КодТарифа=4,tblInkasClient.Цена*1,IIf(Magaziny.КодТарифа=3,Magaziny.Тариф*tblInkasSumma.КоличЗаездов,IIf(Magaziny.КодТарифа=2,Magaziny.Тариф*Sum(tblCard.ПроинкасСумма)/1000)))) AS Доход, tblInkasSumma.Месяц, tblInkasSumma.Год
FROM (tblInkasClient INNER JOIN (MAGAZINY INNER JOIN tblInkasSumma ON MAGAZINY.ПодраздКлиента=tblInkasSumma.ПодраздКлиента) ON tblInkasClient.КодКлиента=MAGAZINY.КодКлиента) INNER JOIN tblCard ON (tblInkasSumma.КодЯвочКарт=tblCard.КодЯвочКарт) AND (tblInkasSumma.Месяц=tblCard.Месяц) AND (tblInkasSumma.Год=tblCard.Год)
WHERE tblInkasSumma.Месяц=Forms![frmInkasSumma].Месяц!Месяц And tblInkasSumma.Год=Forms![frmInkasSumma].Год!Год
GROUP BY tblInkasClient.[Группа], tblInkasClient.Клиент, tblInkasSumma.ПодраздКлиента, tblInkasSumma.Месяц, tblInkasSumma.Год, tblInkasClient.ВидТарифа, tblInkasClient.Цена, tblInkasClient.КоличТочек, Magaziny.Тариф, tblInkasSumma.КоличЗаездов, Magaziny.КодТарифа;

И все бы ничего, но мне нужно чтобы в запросе по полю Magaziny.КодТарифа выводился не первый столбец-ID, а второй-наименование соответствующее этому ID.
Вот картинка.
orehov_i
Дата: 19.12.2011 09:06:18
И еще хотел узнать о функ. CHOOSE. Что может подставляться в качестве первого аргумента? И в качестве следующих аргументов может подставляться выражение?
alvk
Дата: 19.12.2011 09:16:28
orehov_i,

по первому пункту смотрите вот это:
Black_Mad
Дата: 19.12.2011 09:22:02
Если я верно понял проблему, то

программно
Sub Form_Open(Cancel As Integer)

Me.КодТарифа.ColumnCount = 2
Me.КодТарифа.ColumnWidths = "0;5"
Me.КодТарифа.RecordCount = "SELECT Magaziny.КодТарифа, Magaziny.Тариф FROM Magaziny;"
Me.КодТарифа.BoundColumn = 1

End Sub


Или через конструктор поля со списком
orehov_i
Дата: 19.12.2011 10:07:51
alvk,у меня в конструкторе в свойстве также выставлено.
orehov_i
Дата: 19.12.2011 10:13:54
Black_Mad, у меня в форме выводится второй столбец, то что и нужно. А вот в запросе цифры (ID).Отмечены зеленым кружком. Вот их надо как-то поменять на строку допустим "с 1 тыс.рублей"
alvk
Дата: 19.12.2011 10:31:28
orehov_i,

Ну вставьте в запрос нужное поле и всё. В чём проблема? Или там у вас опять в таблице поле с подстановкой?
orehov_i
Дата: 19.12.2011 10:54:47
alvk
orehov_i,

Ну вставьте в запрос нужное поле и всё. В чём проблема?


Проблема у меня в условии IIf(Magaziny.КодТарифа=2.... Что нужно поставить вместо =2. Если я ставлю строку, то не высчитывает поле Доход. Выдает ошибку. А в таблице поля с подстановкой нет.
alvk
Дата: 19.12.2011 12:07:50
orehov_i,

Ничего не понял, давайте mdb-пример и объясните чем связано условие и наименование.
Может имеется ввиду это:

IIf(Magaziny.КодТарифа= " & forms!какая_там.код_тарифа.column(0) & ",Magaziny.Тариф*Sum(tblCard.ПроинкасСумма)/1000)))) 
mds_world
Дата: 19.12.2011 12:20:24
orehov_i
alvk
orehov_i,

Ну вставьте в запрос нужное поле и всё. В чём проблема?


Проблема у меня в условии IIf(Magaziny.КодТарифа=2.... Что нужно поставить вместо =2. Если я ставлю строку, то не высчитывает поле Доход. Выдает ошибку. А в таблице поля с подстановкой нет.

Уже имеющееся в запросе поле tblInkasClient.ВидТарифа не устраивает? Почему нужно повторять вид тарифа?