Вверх ↑
Этот топик читают: Гость
Ответов: 188
Рейтинг: 2
#46: 2018-03-05 23:06:57 ЛС | профиль | цитата
Голову сломал. Подскажите как написать запрос SQL отображения последних 62 дней

SELECT 
nomer,
date_rabot,
time_rabot,
client,
sotrudnik,
vid_rabot,
proizvoditel_kartridga,
model,
price,
nagrada,
tonergroup,
marka_tonera,
toner,
rashod_tonera,
shtrih,
nom_telefon
FROM glav_table ORDER BY nomer DESC limit 300;
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#47: 2018-03-06 08:26:31 ЛС | профиль | цитата

SELECT 
nomer,
date_rabot,
time_rabot,
client,
sotrudnik,
vid_rabot,
proizvoditel_kartridga,
model,
price,
nagrada,
tonergroup,
marka_tonera,
toner,
rashod_tonera,
shtrih,
nom_telefon
FROM glav_table
WHERE date_rabot > date('now','-62 day') ORDER BY nomer DESC;
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:zhorik5
Ответов: 188
Рейтинг: 2
#48: 2018-03-07 12:38:09 ЛС | профиль | цитата
ДА точно работает! это у меня косяк в базе. показываются строки где дата записывалась не верно. Tad ты лучший

Редактировалось 1 раз(а), последний 2018-03-07 12:44:41
карма: 0

0
Ответов: 188
Рейтинг: 2
#49: 2018-03-08 13:24:06 ЛС | профиль | цитата
создал таблицу.[spoiler=]

CREATE TABLE IF NOT EXISTS vzaimorascheti
(id integer primary key autoincrement not null,
date_sozdaniya_vzaimorascheta datetime,
kontragent char (100),
osnovanie char (100),
summa int (10) not null default (0),
rashod int (10) default (0),
ostatok int (10) default (0),
zakrit bit default (0),
primechanie char,
angl_nazvanie char (100),
cod_clienta char (100));
[/spoiler] заполнил значениями...
Взаиморасчеты.jpg
теперь задача такая, как составить запрос таким образом или обрисовать ситуацию так чтоб при приближении к цифре например 400 или менее в поле остаток. у меня выподало сообщение что клиент почти выбрал свои деньги и показывало реальный остаток!
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#50: 2018-03-08 13:36:16 ЛС | профиль | цитата
SELECT kontragent, ostatok FROM vzaimorascheti WHERE ostatok <= 400;
ШЕДЕВР от zhorik5 писал(а):
summa int (10) not null default (0),

zhorik5, вперёд не смотрим ?
Клиент 1 января тебе внёс 1000 руб.,
потом подумал: Блин, деньги есть. У меня 20 принтеров. В 1000 руб. никак не уложусь.
и 20 января перечислил ещё 5000 руб.
И что делать будешь ?
Де́бет и кре́дит - такие слова знаешь ?

Редактировалось 6 раз(а), последний 2018-03-08 14:18:48
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 188
Рейтинг: 2
#51: 2018-03-08 14:34:22 ЛС | профиль | цитата
ШЕДЕВР от zhorik5 писал(а):
summa int (10) not null default (0),

В интернете видел)))
zhorik5, вперёд не смотрим ?

Да я думал на этот счет. и пока сделал таким образом. если произошла доплата то есть возможность вручную изменить поле сумма на остаток + новый счет. Понимаю что не совсем правильно но на большее пока ума не хватает).
Де́бет и кре́дит - такие слова знаешь ?

Как использовать пока не знаю.

--- Добавлено в 2018-03-08 14:38:10

SELECT kontragent, ostatok FROM vzaimorascheti WHERE ostatok <= 400;
Это мы отобразим в таблице. А мне нужно в надпись LABEL.Нужно подумать как это использовать.
Пока решил задачу так но меня куча элементов уже достала.
Add(Label,11120803,917,714){
Left=5
Top=95
Width=389
Height=24
Font=[MS Sans Serif,12,1,255,1]
Visible=1
Caption="Предоплата почти израсходована ОСТАТОК:"
Point(doVisible)
}
Add(Label,8806006,1022,714)
{
Left=395
Top=95
Width=124
Height=24
Font=[MS Sans Serif,12,1,0,1]
Visible=1
Caption=""
Point(doVisible)
}
Add(If_else,11557411,833,700)
{
Type=4
Op2=Integer(100)
link(onFalse,4607545:doEvent1,[])
link(Op1,6975189:Result,[])
}
Add(Hub,4607545,882,707)
{
InCount=2
OutCount=3
link(onEvent1,657745:doEvent1,[(970,713)(970,720)])
link(onEvent3,11120803:doVisible,[])
}
Add(DSC_QueryScalar,6975189,833,651)
{
DSManager="parent.global"
link(onQuery,11557411:doCompare,[(877,657)(877,690)(821,690)(821,706)])
}
Add(FormatStr,10332489,777,651)
{
DataCount=1
Mask="Select ostatok from vzaimorascheti where angl_nazvanie="%1" and zakrit=0"
link(onFString,6975189:doQuery,[])
}
Add(Hub,657745,980,714)
{
link(onEvent1,8806006:doText,[])
link(onEvent2,8806006:doVisible,[])
}



--- Добавлено в 2018-03-08 14:39:40

и получается что если они однажды показываются я не могу их спрятать с глаз долой что не совсем удобно!



--- Добавлено в 2018-03-08 14:51:27

база в архиве может частично не работать так как подверглась множественным изменениям. в верхнем меню нужно нажать создать базу. произойдут частичные дополнения. в справочниках контрагенты и все картриджи нужно перенумеровать таблицы там для этого галочки стоят. тогда заработает как надою

Редактировалось 6 раз(а), последний 2018-03-09 11:02:30
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#52: 2018-03-08 16:00:47 ЛС | профиль | цитата
zhorik5 писал(а):
теперь задача такая, как составить запрос таким образом или обрисовать ситуацию так чтоб при приближении к цифре например 400 или менее в поле остаток. у меня выподало сообщение что клиент почти выбрал свои деньги и показывало реальный остаток!
Когда "обрисовать ситуацию" ????
1. При запуске программы.
2. При выборе клиента.
3. При приёме аппарата в ремонт.
4. При выдаче из ремонта.
5. Просто справка.
ЕГЭ какое-то.

Редактировалось 1 раз(а), последний 2018-03-08 16:01:44
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 188
Рейтинг: 2
#53: 2018-03-09 10:58:35 ЛС | профиль | цитата
ЕГЭ какое-то.
Согласен, дурака включаю. Никак с мыслями не соберусь то они заняты то я. Прошу прощения за неточный вопрос.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#54: 2018-03-09 21:16:39 ЛС | профиль | цитата
Запрос для Label
Select case when ostatok<400 then "Предоплата почти израсходована ОСТАТОК: "
else "Предоплата: " end ||ostatok from vzaimorascheti where kontragent="%1";

Редактировалось 3 раз(а), последний 2018-03-09 21:47:32
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:zhorik5
Ответов: 2
Рейтинг: 0
#55: 2018-09-04 13:08:12 ЛС | профиль | цитата
zhorik5 как ты сделал чтобы можно было сканировать

Редактировалось 2 раз(а), последний 2018-09-04 13:12:24
карма: 0

0
Ответов: 188
Рейтинг: 2
#56: 2018-10-07 22:30:39 ЛС | профиль | цитата
user22 писал(а):
zhorik5 как ты сделал чтобы можно было сканировать

Редактировалось 2 раз(а), последний 2018-09-04 13:12:24

Все просто сканер настраивается таким образом, что он считывает и заносит информацию в любое текстовое поле. это не от программы зависит а от штрихсканера

--- Добавлено в 2018-10-07 22:41:20

пришло время большой обновы. И тут я уперся. раньше я в таблице прайс создавал строку и заполнял несколько полей, остальное заполнение полей делал вручную через стороннюю программу работы с базой данных. Это стало не удобно потому что список клиентов вырос и вместо 10 их стало 50 на каждую добавленную строку стало уходить слишком много времени редактирования а как составить SQL запрос на добавление данных в строку с с заранее неизвестным количеством полей не могу. щас на примерах.
прайс.gif
а теперь хочу чтоб пустые поля заполнялись автоматически с первых двух полей.

--- Добавлено в 2018-10-07 22:44:26

примерная схема модуля
Add(MainForm,901602,343,406)
{
Left=35
Top=105
Width=649
Height=454
Visible=1
Point(doShowModal)
Point(onClose)
link(onCreate,16688429:doEvent1,[(383,426)(383,230)])
}
Add(ComboBox,9499850,581,182)
{
Left=150
Top=10
Width=110
Height=21
Text=""
}
Add(ComboBox,11475933,518,231)
{
Left=150
Top=35
Width=110
Height=21
Text=""
DataType=1
Point(EditText)
Point(onMouseDown)
Point(onMouseWheel)
link(onClick,12047961:doString,[(566,244)(566,510)])
link(onMouseDown,15111472:doEvent2,[(562,251)(562,293)(534,293)(534,335)])
link(onMouseWheel,15111472:doEvent1,[(562,258)(562,290)(534,290)(534,328)])
}
Add(ListBox,4908896,581,315)
{
Left=10
Top=80
Width=140
Height=310
Enabled=1
DataType=1
Sort=0
MultiSelect=0
Point(doSelectAll)
Point(String)
Point(doEnabled)
}
Add(Edit,12687776,868,182)
{
Left=205
Top=115
Width=55
Text=""
}
Add(Edit,688232,812,182)
{
Left=205
Top=80
Width=55
Text=""
}
Add(DSC_Query,14429155,441,175)
{
SQL="SELECT naimenovanie FROM vid_rabot"
DSManager="parent.parent.global"
link(onQuery,9499850:doAdd,[(527,181)(527,188)])
}
Add(Hub,16688429,392,224)
{
OutCount=10
link(onEvent1,14429155:doQuery,[(416,230)(416,181)])
link(onEvent2,7287572:doQuery,[])
link(onEvent3,9352668:doQuery,[(416,244)(416,321)])
}
Add(DSC_Query,7287572,441,231)
{
SQL="SELECT naimenovanie FROM proizvoditeli_printerov"
DSManager="parent.parent.global"
link(onQuery,11475933:doAdd,[])
}
Add(DSC_Query,9352668,441,315)
{
SQL="SELECT model FROM table_kartridge"
DSManager="parent.parent.global"
link(onQuery,10756362:doEvent1,[])
}
Add(FormatStr,13480679,791,315)
{
DataCount=5
Mask="INSERT INTO price (vid_rabot, model, roznica, partner) VALUES ('%2', '%3', %4, %5);\r\n"
Point(FString)
link(onFString,10949737:doExec,[])
link(Str2,9499850:String,[(804,271)(594,271)])
link(Str3,7309916:Var2,[(811,303)(681,303)])
link(Str4,417044:Var2,[])
link(Str5,10195988:Var2,[(825,265)(874,265)])
}
Add(DSC_Exec,10949737,840,315)
{
DSManager="parent.parent.global"
link(onExec,13014222:doQuery,[(894,321)(894,237)])
}
Add(Button,11799328,315,532)
{
Left=45
Top=395
Caption="ОК"
link(onClick,1177040:doEvent1,[])
}
Add(Button,7063928,273,469)
{
Left=155
Top=395
Caption="ОТМЕНА"
link(onClick,1267370:doEvent1,[])
}
Add(Hub,9056512,406,469)
{
InCount=2
OutCount=1
link(onEvent1,901602:doClose,[(432,475)(432,454)(331,454)(331,433)])
}
Add(Hub,1177040,371,532)
{
OutCount=3
link(onEvent1,9056512:doEvent2,[(392,538)(392,482)])
link(onEvent2,7078230:In,[])
}
Add(Label,10884823,329,189)
{
Left=10
Top=15
Width=89
Height=17
Caption="Выберите услугу"
}
Add(Label,6983115,326,186)
{
Left=10
Top=35
Width=133
Height=17
Caption="Производитель принтера"
}
Add(Label,247670,320,180)
{
Left=10
Top=60
Width=105
Height=17
Caption="Список картриджей"
}
Add(Label,15803516,315,175)
{
Left=155
Top=85
Width=47
Height=17
Caption="Розница"
}
Add(Label,16049397,308,168)
{
Left=155
Top=120
Width=47
Height=17
Caption="Партнер"
}
Add(Hub,1267370,315,469)
{
link(onEvent1,9056512:doEvent1,[])
}
Add(LineBreak,4101338,749,315)
{
link(Out,13480679:doString,[])
Primary=[7078230,-350,224]
}
Add(FormatStr,12047961,581,504)
{
DataCount=1
Mask="SELECT model FROM table_kartridge WHERE firma ='%1'"
Point(FString)
link(onFString,16435370:doEvent1,[])
}
Add(DSC_Query,2637601,665,504)
{
DSManager="parent.parent.global"
link(onQuery,10756362:doEvent2,[(710,510)(710,459)(478,459)(478,328)])
link(SQL,12047961:FString,[(671,495)(587,495)])
}
Add(Hub,10756362,490,315)
{
InCount=2
OutCount=1
link(onEvent1,4908896:doAdd,[])
}
Add(Hub,16435370,630,504)
{
link(onEvent1,2637601:doQuery,[])
link(onEvent2,4908896:doEnabled,[(652,517)(652,541)(553,541)(553,370)])
}
Add(Hub,15111472,546,322)
{
InCount=2
OutCount=1
link(onEvent1,4908896:doClear,[])
}
Add(FormatStr,3322998,952,315)
{
DataCount=4
Mask="UPDATE price SET %1 = %2 WHERE model = %3;\r\nUPDATE price SET %1 = %4 WHERE model = %3;"
link(onFString,12008024:doEvent1,[])
link(Str1,1445838:Str,[])
link(Str2,10195988:Var3,[(965,250)])
link(Str3,7309916:Var3,[(972,303)(828,303)(828,334)])
link(Str4,417044:Var3,[(979,236)])
}
Add(DSC_Exec,473014,1043,315)
{
DSManager="parent.parent.global"
}
Add(DSC_Query,13014222,903,231)
{
SQL="select * from price"
DSManager="parent.parent.global"
link(onColumns,1445838:doStr,[])
}
Add(MT_String,1445838,952,238)
{
Delimeter=", "
link(onResult,3322998:doString,[(1005,244)(1005,289)(919,289)(919,321)])
}
Add(GetDataEx,417044,812,231)
{
link(Data,688232:Text,[])
}
Add(GetDataEx,10195988,868,245)
{
link(Data,12687776:Text,[])
}
Add(GetDataEx,7309916,675,329)
{
Angle=2
link(Data,4908896:String,[(681,379)(608,379)])
}
Add(Edit,7592469,1008,350)
{
Left=155
Top=175
Width=470
Text=""
}
Add(Hub,12008024,1001,315)
{
link(onEvent1,473014:doExec,[])
link(onEvent2,7592469:doText,[(1027,328)(1027,342)(996,342)(996,356)])
}



Редактировалось 2 раз(а), последний 2018-10-07 22:44:26
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#57: 2018-10-07 23:32:29 ЛС | профиль | цитата
zhorik5 писал(а):
список клиентов вырос и вместо 10 их стало 50
А если их станет 500 или 5000? Что делать будешь?
Какое отношение имеют клиенты к стоимости услуги ?
Все клиенты делятся на партнёров и пришлых.
Вот твой прайслист
Всё остальное от лукавого. ИМХО.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 188
Рейтинг: 2
#58: 2018-10-07 23:41:06 ЛС | профиль | цитата
Tad писал(а):
Все клиенты делятся на партнёров и пришлых.

да все правильно. но есть один нюанс. есть клиенты которые работают по контракту а там цены отличаются совсем от этих двух колонок. вот и приходится изобретать велосипед!
мне получается либо нужно кардинально изменить прайс на какое-то другое строение потому как ответов на просторах интернета я не нашел.

--- Добавлено в 2018-10-07 23:42:55

Tad писал(а):
А если их станет 500 или 5000? Что делать будешь?

уволюсь нахрен потому что на эту работу заполнения целый день будет уходить.

Редактировалось 1 раз(а), последний 2018-10-07 23:42:55
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#59: 2018-10-08 08:11:49 ЛС | профиль | цитата
zhorik5 писал(а):
есть клиенты которые работают по контракту а там цены отличаются совсем от этих двух колонок
Тем более - зачем нужна хотелка
zhorik5 писал(а):
а теперь хочу чтоб пустые поля заполнялись автоматически с первых двух полей.

Прекрасный пример аксиомы "Инициатива наказуема !"

Редактировалось 1 раз(а), последний 2018-10-08 08:36:38
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 113
Рейтинг: 15
#60: 2020-10-17 21:41:01 ЛС | профиль | цитата
Доброго где можно посмотреть данную программу (скачать)?
карма: 0
Ученик
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)