powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция на обновление процента в таблице
22 сообщений из 22, страница 1 из 1
Функция на обновление процента в таблице
    #39250681
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!

Использую разделенную базу данных *.mdb в среде Access 2010

Возникла такая задача:
Есть сотрудники, у которых постоянная ставка 40% от выполненных работ. Тот, кто заработал среди сотрудников максимальную зарплату, должен получать ее по процентной ставке 50%. Организовать в форме поля для вывода: суммы всех инженеров и общей стоимости ремонтов.

tbl_Tehniks

ID_TehniksDate_DawnSum_Remonta155616.06.2015584.00155721.06.20151347.00
где ID_Tehniks - номер техники, Date_Dawn - Дата завершения ремонта, Sum_Remonta - Общая стоимость ремонта

tbl_Okazanie_Uslug

IDID_TehniksID_GoodsQtyPricePrice_Det11115568410.00 84.001121556null1500.000.00
где ID_Goods - номер запчасти, Qty - кол-во, Price - стоимость услуги, Price_Det - стоимость запчасти


tbl_Current_Tehniks
ID_Current_RemontID_TehniksID_Sotrudnik12111111
где ID_Current_Remont - номер ремонта, ID_Tehniks - номер техники, ID_Sotrudnik - номер сотрудника


tbl_Sotrudniki
ID_SotrudnikStavka1 40%
где ID_Sotrudnik - номер сотрудника, Stavka - процентная ставка

Общую стоимость ремонтов нахожу запросом qry_SumRem
Код: sql
1.
2.
3.
4.
SELECT Sum(tbl_Tehniks.Sum_Remonta) AS [Sum-Sum_Remonta], tbl_Current_Tehniks.ID_Sotrudnik
FROM tbl_Tehniks INNER JOIN tbl_Current_Tehniks ON tbl_Tehniks.ID_Tehniks = tbl_Current_Tehniks.ID_Tehniks
WHERE (((tbl_Tehniks.Date_Dawn) Between dIn() And dOut()))
GROUP BY tbl_Current_Tehniks.ID_Sotrudnik;



Стоимость запчастей нахожу запросом qry_SumDetIng
Код: sql
1.
2.
3.
4.
SELECT Sum([Qty]*[price_Det]) AS SumDet, tbl_Current_Tehniks.ID_Sotrudnik
FROM (tbl_Tehniks INNER JOIN tbl_Current_Tehniks ON tbl_Tehniks.ID_Tehniks = tbl_Current_Tehniks.ID_Tehniks) INNER JOIN tbl_Okazanie_Uslug ON tbl_Tehniks.ID_Tehniks = tbl_Okazanie_Uslug.ID_Tehniks
WHERE (((tbl_Tehniks.Date_Dawn) Between dIn() And dout()) AND ((tbl_Okazanie_Uslug.ID_Goods)>0))
GROUP BY tbl_Current_Tehniks.ID_Sotrudnik;



далее собираю в кучу запросом qry_Sums
Код: sql
1.
2.
SELECT qry_SumDetIng.SumDet, qry_SumRem.[Sum-Sum_Remonta], qry_SumDetIng.ID_Sotrudnik
FROM qry_SumDetIng INNER JOIN qry_SumRem ON qry_SumDetIng.ID_Sotrudnik = qry_SumRem.ID_Sotrudnik;



Хочу разобраться как организовать один запрос чтоб при максимуме у кого-то из сотрудников устанавливалась ставка 50%?
Валидность ставки всегда равна рабочей неделе.


модуль в базе
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Public Function dIn() As Date
    dIn = Date - Weekday(Date, vbMonday) + 1
End Function

Public Function dOut() As Date
    dOut = Date - Weekday(Date, vbMonday) + 6
End Function



Пока все что наработал...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Private Sub Кнопка54_Click()
    Dim strSqlSRA As String
    Dim strSqlSZA As String
    Dim strSqlSD As String
    Dim strSqlSN As String
    Dim iSD As Integer
    Dim iSR As Integer
    Dim iSN As Integer
    Dim dIn As Date
    Dim dOut As Date
    Dim rst As ADODB.Recordset
        ' Тут использую местный расчет даты выборки по процедуре
        dIn = Date - Weekday(Date, vbMonday) + 1
        dOut = Date - Weekday(Date, vbMonday) + 6 
        ' Запрос, который показывает проведенную сумму ремонтов за текущую неделю
        strSqlSRA = "SELECT Sum(tbl_Tehniks.Sum_Remonta) AS All_Sum_Remonts FROM tbl_Tehniks " & _
                    "WHERE tbl_Tehniks.Date_Dawn Between #" & Format(dIn, "mm\/dd\/yy hh\:mm\:ss") & "#" & " AND #" & Format(dOut, "mm\/dd\/yy hh\:mm\:ss") & "# " & _
                    "And tbl_Tehniks.Otrem = True;"
        Set rst = New ADODB.Recordset
            rst.Open strSqlSRA, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            iSR = Format(rst.Fields("All_Sum_Remonts"), "fixed")
            rst.Close
        Set rst = Nothing
        Me.fld_All_Sum_Rem = iSR
        
        'Запрос, который показывает сумму запчастей
        strSqlSD = "SELECT Sum(tbl_Okazanie_Uslug.Price_Det * tbl_Okazanie_Uslug.Qty) AS SumDet " & _
                    "FROM tbl_Tehniks INNER JOIN tbl_Okazanie_Uslug ON tbl_Tehniks.ID_Tehniks = tbl_Okazanie_Uslug.ID_Tehniks " & _
                    "WHERE tbl_Tehniks.Date_Dawn Between #" & Format(dIn, "mm\/dd\/yy hh\:mm\:ss") & "#" & " AND #" & Format(dOut, "mm\/dd\/yy hh\:mm\:ss") & "# " & _
                    "And tbl_Tehniks.Otrem = True;"
        Set rst = New ADODB.Recordset
            rst.Open strSqlSD, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            iSD = Format(rst.Fields("SumDet"), "fixed")
            rst.Close
        Set rst = Nothing
        MsgBox iSD
        
        ' Запрос, который показывает сумму от наценки на запчасть
        strSqlSN = "SELECT Sum(([tbl_tovary].[price_naz]-[tbl_tovary].[price_tov])*[tbl_okazanie_uslug].[qty]) AS [SumNac]" & _
                    "FROM tbl_Tehniks INNER JOIN (tbl_Tovary INNER JOIN tbl_Okazanie_Uslug ON tbl_Tovary.Id_Tovar = tbl_Okazanie_Uslug.ID_Goods) ON tbl_Tehniks.ID_Tehniks = tbl_Okazanie_Uslug.ID_Tehniks " & _
                    "WHERE tbl_Tehniks.Date_Dawn Between #" & Format(dIn, "mm\/dd\/yy hh\:mm\:ss") & "#" & " AND #" & Format(dOut, "mm\/dd\/yy hh\:mm\:ss") & "#;"

        Set rst = New ADODB.Recordset
            rst.Open strSqlSN, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            iSN = Format(rst.Fields("SumNac"), "fixed")
            Me.fld_Pribyl = iSN
        MsgBox "Функция находится еще в разработке..."
        Exit Sub
        'Запрос, который показывает сумму зарплат по всем инженерам
        strSqlSZA = "SELECT Sum(([Sum-Sum_Remonta]-[SumDet])*[Stavka]) AS Zarplata " & _
                    "FROM (tbl_Sotrudniki RIGHT JOIN (qry_Sum_Rem_Ingeners LEFT JOIN qry_Sum_Detali_Ingeners " & _
                    "ON qry_Sum_Rem_Ingeners.First_Name = qry_Sum_Detali_Ingeners.Sotrudnik) " & _
                    "ON tbl_Sotrudniki.First_Name = qry_Sum_Detali_Ingeners.Sotrudnik) LEFT JOIN qry_Sum_Avans " & _
                    "ON tbl_Sotrudniki.ID_Sotrudnik = qry_Sum_Avans.ID_Sotrudnik;"
        Set rst = New ADODB.Recordset
            rst.Open strSqlSZA, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            MsgBox rst.Fields("Zarplata")
            rst.Close
        Set rst = Nothing
End Sub



Как соединить все в кучу и произвести расчет? Буду признателен за подсказки, не факт что мой алгоритм кода "лучший".
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39250699
On Point,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Dim dIn As Date
Dim dOut As Date
' имена переменных совпадают с именами
Public Function dIn() As Date
Public Function dOut() As Date

' ф-ции хоть и объявлены, но не используются
' Тут использую местный расчет даты выборки по процедуре
dIn = Date - Weekday(Date, vbMonday) + 1
dOut = Date - Weekday(Date, vbMonday) + 6 

' По уму, это пишется так:
dIn = Date - Weekday(Date, vbMonday) + 1
dOut = dIn + 5 

' Но, коль уж замахнулся на ф-ции, то в целом должно быть так:
Public Sub sp_InOut(pIn As Date, pOut As Date, _
                    Optional pWorkDaysPerWeek As Byte = 6)
    pIn = Date - Weekday(Date, vbMonday) + 1
    pOut = pIn + pWorkDaysPerWeek - 1
End Sub
' Date и vbMonday можно тоже в опциональные параметры вынести

Private Sub sb_Test()
Dim dIn As Date
Dim dOut As Date
    Call sp_InOut(dIn, dOut)
    'Call sp_InOut(dIn, dOut, 5)
    Debug.Print dIn, dOut
End Sub
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39250705
On Point,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Set rst = New ADODB.Recordset
    rst.Open strSqlSRA, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    ' разве в ADO рекордсет не надо заполнять, проверять число записей
    ' и вставать на нужную явно, пусть даже она ожидается одна?
    
    iSR = Format(rst.Fields("All_Sum_Remonts"), "fixed")
    ' rst.Fields("All_Sum_Remonts").Value - не юзаем св-ва по дефолту
    ' округление здесь не к месту
    ' тем более - костыльное
    ' тем более - с неявным приведением
    
    rst.Close
Set rst = Nothing



Это то, что в глаза явно бросилось. Безотносительно к твоему интересу...
На коленке оно может и не нужно, а будешь внедрять - учти.
Хотя с округлением (его местом) разбирайся уже сейчас!
.
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39251426
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
капча-лапша-я-не-робот,


Благодарю за советы.

Вот то что нужно, прилагаю картинку.


В ней есть инженер, который заработал максимальную зп по ставке 40% - 2493,60, ему нужно пересчитывать по ставке 50% . Как это сделать, не получается построить запрос...
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39251439
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. с момента первого рабочего дня, каждый инженер выполняет разные работы, соответственно кто-то кого-то перегоняет..., по нажатию кнопки производится расчет зп, до субботы. В субботу, распечатывается отчет. Ныне приходится делать это в ручную... заходить в таблицу сотрудника и устанавливать ставку.
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39251443
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
UPDATE (tbl_Sotrudniki RIGHT JOIN (qry_Sum_Rem_Ingeners LEFT JOIN qry_Sum_Detali_Ingeners 
ON qry_Sum_Rem_Ingeners.First_Name = qry_Sum_Detali_Ingeners.Sotrudnik) 
ON tbl_Sotrudniki.First_Name = qry_Sum_Detali_Ingeners.Sotrudnik) LEFT JOIN qry_Sum_Avans 
ON tbl_Sotrudniki.ID_Sotrudnik = qry_Sum_Avans.ID_Sotrudnik SET tbl_Sotrudniki.Stavka = 0.5
WHERE (((([Sum-Sum_Remonta]-[SumDet])*[Stavka])=Max([Zarplata])));



например, как в этом запросе.
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39251512
On Point,

небольшое уточнение:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
' Но, коль уж замахнулся на ф-ции, то в целом должно быть так:
Public Sub sp_InOut(pIn As Date, pOut As Date, _
                    Optional pWorkDaysPerWeek As Byte = 6)
Dim dDat as Date
    dDat = Date
    pIn = dDat - Weekday(dDat, vbMonday) + 1
    pOut = pIn + pWorkDaysPerWeek - 1
End Sub


.
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39252151
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
капча-трава-я-не-робот,

С датами понятно...

Как на счет запроса?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim strSqlMZP As String
Dim rst As ADODB.Recordset
strSqlMZP = "SELECT tbl_Sotrudniki.ID_Sotrudnik, Max(([Sum-Sum_Remonta]-[Sumdet])*0.4) AS ZP, tbl_Sotrudniki.Stavka " & _
                    "FROM (qry_SumDetIng INNER JOIN qry_SumRem ON qry_SumDetIng.ID_Sotrudnik = qry_SumRem.ID_Sotrudnik) " & _
                    "INNER JOIN tbl_Sotrudniki ON qry_SumDetIng.ID_Sotrudnik = tbl_Sotrudniki.ID_Sotrudnik " & _
                    "GROUP BY tbl_Sotrudniki.ID_Sotrudnik, tbl_Sotrudniki.Stavka " & _
                    "HAVING (((tbl_Sotrudniki.ID_Sotrudnik)=Count(1)));"
        Set rst = New ADODB.Recordset
            rst.Open strSqlMZP, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            rst.Fields("stavka") = "0,5" ' тут ошибка: Обновление невозможно. База данных или объект доступны только для чтения
            rst.Update
            rst.Close
        Set rst = Nothing
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39252219
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On Point,

Запрос содержит группировку. Такие запросы в принципе нельзя проапдейтить, даже если группировку вынести в отдельный подзапрос. Сохраняйте агрегированные данные во временную таблицу, и используйте уже таблицу в запросе.
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39252809
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

Спасибо!

Получилось так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
    Dim strSqlAS As String
    Dim strSqlMax As String
    Dim strSqlUpSot As String
    Dim acExercise As ADODB.Connection
    
         Set acExercise = CurrentProject.Connection
         ' Создаем временную таблицу с данными о зарплатах
            acExercise.Execute "CREATE TABLE tbl_tmpSum(ID_Sotrudnik long, ZP double);"
         ' Помещаем в нее данные
               strSqlAS = "INSERT INTO tbl_tmpSum ( ID_Sotrudnik, ZP )" & _
                    "SELECT tbl_Sotrudniki.ID_Sotrudnik, ([Sum-Sum_Remonta]-[SumDet])*0.4 AS ZP " & _
                    "FROM qry_SumDetIng INNER JOIN (qry_SumRem INNER JOIN tbl_Sotrudniki " & _
                    "ON qry_SumRem.ID_Sotrudnik = tbl_Sotrudniki.ID_Sotrudnik) " & _
                    "ON qry_SumDetIng.ID_Sotrudnik = tbl_Sotrudniki.ID_Sotrudnik;"
            acExercise.Execute strSqlAS
         ' Создаем таблицу для вывода максимальной зарплаты
           acExercise.Execute "CREATE TABLE tbl_tmpMax (ZP double);"
               strSqlMax = "INSERT INTO tbl_tmpMax ( ZP )" & _
                    "SELECT Max(tbl_tmpSum.ZP) AS [Max-ZP] " & _
                    "FROM tbl_tmpSum;"
         ' Помещаем данные
            acExercise.Execute strSqlMax
         ' Обновляем таблицу сотрудников, с условием, что кто-то заработал больше всех
        strSqlUpSot = "UPDATE tbl_tmpMax INNER JOIN (tbl_Sotrudniki INNER JOIN tbl_tmpSum " & _
                        "ON tbl_Sotrudniki.ID_Sotrudnik = tbl_tmpSum.ID_Sotrudnik) " & _
                        "ON tbl_tmpMax.ZP = tbl_tmpSum.ZP SET tbl_Sotrudniki.Stavka = 0.5;"
            acExercise.Execute strSqlUpSot
            CurrentDb.TableDefs.Refresh
            acExercise.Execute "Drop table tbl_tmpMax;"
            acExercise.Execute "Drop Table tbl_tmpSum;"
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400262
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Задача усложнилась....

Теперь необходимо рассчитать ставку по по принципу:
Все расчеты основываются на 35%, если сумма зп до 1000, то расчет по 35%, если до 2000, то по 40%, если до 3000, то по 45, а если до 4000 то, 50%.

Ныне создал 4-е запроса:

1-ий qry_35:
Код: sql
1.
2.
SELECT tbl_Sotrudniki.ID_Sotrudnik, ([Sum-Sum_Remonta]-[SumDet])*0.35 AS ZP
FROM qry_SumDetIng INNER JOIN (qry_SumRem INNER JOIN tbl_Sotrudniki ON qry_SumRem.ID_Sotrudnik = tbl_Sotrudniki.ID_Sotrudnik) ON qry_SumDetIng.ID_Sotrudnik = tbl_Sotrudniki.ID_Sotrudnik;



2-ий qry_40:
Код: sql
1.
2.
3.
SELECT qry_35.ID_Sotrudnik, ([ZP]*0.05)+[zp] AS 40
FROM qry_35
WHERE (((qry_35.ZP)>1000 And (qry_35.ZP)<2000));



3-ий qry_45:
Код: sql
1.
2.
3.
SELECT qry_35.ID_Sotrudnik, ([ZP]*0.1)+[ZP] AS 45
FROM qry_35
WHERE (((qry_35.ZP)>2000 And (qry_35.ZP)<3000));



4-ий qry_50:
Код: sql
1.
2.
3.
SELECT qry_35.ID_Sotrudnik, ([ZP]*0.15)+[ZP] AS 50
FROM qry_35
WHERE (((qry_35.ZP)>3000 And (qry_35.ZP)<4000));



Собственно вопрос, как сгруппировать все эти запросы в один, вместо этого, с обновлением?:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 Создаем таблицу для вывода максимальной зарплаты
           acExercise.Execute "CREATE TABLE tbl_tmpMax (ZP double);"
               strSqlMax = "INSERT INTO tbl_tmpMax ( ZP )" & _
                    "SELECT Max(tbl_tmpSum.ZP) AS [Max-ZP] " & _
                    "FROM tbl_tmpSum;"
         ' Помещаем данные
            acExercise.Execute strSqlMax
         ' Обновляем таблицу сотрудников, с условием, что кто-то заработал больше всех
        strSqlUpSot = "UPDATE tbl_tmpMax INNER JOIN (tbl_Sotrudniki INNER JOIN tbl_tmpSum " & _
                        "ON tbl_Sotrudniki.ID_Sotrudnik = tbl_tmpSum.ID_Sotrudnik) " & _
                        "ON tbl_tmpMax.ZP = tbl_tmpSum.ZP SET tbl_Sotrudniki.Stavka = 0.5;"
            acExercise.Execute strSqlUpSot
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400395
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сейчас тестирую вариант
Код: sql
1.
2.
3.
SELECT qry_35.ID_Sotrudnik, qry_35.ZP, qry_35.Stavka,
IIf([zp]<=1000,"35",IIf([zp]>1000<2000,"40",IIf([zp]>2000<3000,"45",IIf([zp]>3000<4000,"50")))) AS NewStavka
FROM qry_35;



У кого какие мысли?
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400973
хм-м-м
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
On Pointсейчас тестирую вариант
Код: sql
1.
2.
3.
SELECT qry_35.ID_Sotrudnik, qry_35.ZP, qry_35.Stavka,
IIf([zp]<=1000,"35",IIf([zp]>1000<2000,"40",IIf([zp]>2000<3000,"45",IIf([zp]>3000<4000,"50")))) AS NewStavka
FROM qry_35;



У кого какие мысли?Мысли?
Ну хоть бы такая:
Код: sql
1.
2.
3.
[zp]>1000<2000 даст True при любом [zp]
[zp]>2000<3000 тоже даст True при любом [zp]
[zp]>3000<4000 тоже даст True при любом [zp]

Почему?
Подумайте...
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400977
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне конечно лень создавать базу для проверки
Код: sql
1.
2.
3.
4.
5.
6.
SELECT qry_35.ID_Sotrudnik, qry_35.ZP, qry_35.Stavka,
IIf([zp]<=1000,"35",
IIf([zp]<2000,"40",
IIf([zp]<3000,"45",
IIf([zp]<4000,"50","00")))) AS NewStavka
FROM qry_35;
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400979
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tckb eckjdbt yf hfdtycndj dth[ytve pyfxtyb.
Код: sql
1.
2.
3.
4.
5.
6.
SELECT qry_35.ID_Sotrudnik, qry_35.ZP, qry_35.Stavka,
IIf([zp]<=1000,"35",
IIf([zp]<=2000,"40",
IIf([zp]<=3000,"45",
IIf([zp]<=4000,"50","00")))) AS NewStavka
FROM qry_35;
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400984
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, не дали человеку подумать...

ПЕНСИОНЕРКА, а база зачем? Все устно прекрасно проверяется.)))
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400986
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On Point,

А почему NewStavka текстовая ("40", "50",...)?
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39400990
хм-м-м
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ох уж эти куки.(((
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39401017
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм-м-м,

Да, я понял свой косяк - в логике. :)

__Michelle,

потому что, пока не придумал как вернуть в цифру. Cint с связке с IIF не работает в запросе возвращает Null
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39401037
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On Pointпока не придумал как вернуть в цифру. Cint с связке с IIF не работает в запросе возвращает NullУ меня и без преобразования числа возвращаются:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT TOP 1 999 AS zp,
IIf([zp]<=1000,35,IIf([zp]<2000,40,IIf([zp]<3000,45,IIf([zp]<4000,50,0)))) AS NewStavka
FROM MSysObjects
UNION ALL
SELECT TOP 1 5000 AS zp,
IIf([zp]<=1000,35,IIf([zp]<2000,40,IIf([zp]<3000,45,IIf([zp]<4000,50,0)))) AS NewStavka
FROM MSysObjects
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39401071
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
Понял. Кавычки)))

А как на счет не целого числа, а с запятой 0,35, 0,40, 0,45, 0,50
Код: sql
1.
IIf([zp]<=1000,0,35,IIf([zp]<=2000,40,IIf([zp]<=3000,0,45,IIf([zp]<=4000,0,50,0)))) AS NewStavka 



для перевода в проценты
...
Рейтинг: 0 / 0
Функция на обновление процента в таблице
    #39401078
On Point
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос закрыт,
- точки)))
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция на обновление процента в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]