Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция на обновление процента в таблице / 22 сообщений из 22, страница 1 из 1
04.06.2016, 20:12
    #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
04.06.2016, 21:16
    #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
04.06.2016, 21:52
    #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
06.06.2016, 17:40
    #39251426
On Point
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция на обновление процента в таблице
капча-лапша-я-не-робот,


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

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


В ней есть инженер, который заработал максимальную зп по ставке 40% - 2493,60, ему нужно пересчитывать по ставке 50% . Как это сделать, не получается построить запрос...
...
Рейтинг: 0 / 0
06.06.2016, 17:51
    #39251439
On Point
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция на обновление процента в таблице
т.е. с момента первого рабочего дня, каждый инженер выполняет разные работы, соответственно кто-то кого-то перегоняет..., по нажатию кнопки производится расчет зп, до субботы. В субботу, распечатывается отчет. Ныне приходится делать это в ручную... заходить в таблицу сотрудника и устанавливать ставку.
...
Рейтинг: 0 / 0
06.06.2016, 17:58
    #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
06.06.2016, 20:34
    #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
07.06.2016, 16:28
    #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
07.06.2016, 17:26
    #39252219
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция на обновление процента в таблице
On Point,

Запрос содержит группировку. Такие запросы в принципе нельзя проапдейтить, даже если группировку вынести в отдельный подзапрос. Сохраняйте агрегированные данные во временную таблицу, и используйте уже таблицу в запросе.
...
Рейтинг: 0 / 0
08.06.2016, 14:16
    #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
07.02.2017, 16:40
    #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
07.02.2017, 19:04
    #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
08.02.2017, 15:05
    #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
08.02.2017, 15:10
    #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
08.02.2017, 15:11
    #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
08.02.2017, 15:14
    #39400984
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция на обновление процента в таблице
Эх, не дали человеку подумать...

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

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

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

__Michelle,

потому что, пока не придумал как вернуть в цифру. Cint с связке с IIF не работает в запросе возвращает Null
...
Рейтинг: 0 / 0
08.02.2017, 15:57
    #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
08.02.2017, 16:28
    #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
08.02.2017, 16:31
    #39401078
On Point
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция на обновление процента в таблице
вопрос закрыт,
- точки)))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция на обновление процента в таблице / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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