Переключение на Главную Страницу Страницы: 1 ... 42 43 [44] 45 46 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) 1sqlite (число прочтений - 464546 )
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #645 - 29. Декабря 2010 :: 12:56
Печать  
CaBaT писал(а) 29. Декабря 2010 :: 08:51:
Ну вообще сейчас в разработке переход на терминал, думаю решение будет положительным Улыбка
А про V7DBNet ветку читал, но что как то стрёмно в продакшн ставить..

Если на терминал переходите, то V7DBNet и не нужна, она дает прирост при работе по сети, за счет обхода проблемы "отключение файлового кэша при подключении второго юзера".
  
Наверх
 
IP записан
 
sava
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 56
Зарегистрирован: 18. Февраля 2010
Пол: Мужской
Re: 1sqlite
Ответ #646 - 14. Января 2011 :: 17:48
Печать  
1sqlite под Винь 9х  работает или есть какие- то ньюансы?
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #647 - 16. Января 2011 :: 21:34
Печать  
sava писал(а) 14. Января 2011 :: 17:48:
1sqlite под Винь 9х  работает или есть какие- то ньюансы?

Э....
Даже не проверял, как-то в голову не приходило.
Про сам sqlite написано на офф.сайте, что поддерживается Win32 и WinCE.
У меня есть несколько вызовов юникодных. По-моему на голой Win98 не месте этих функций - пустые заглушки, но если поставить IE с какой-то (вроде 5ой) версии, то они начинают работать. Завтра на работе гляну подробнее.
  
Наверх
 
IP записан
 
ТочноеЯдро
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 28. Января 2010
Re: 1sqlite
Ответ #648 - 17. Января 2011 :: 23:55
Печать  
Добрый день.
Есть оборотный регистр типа
Клиент, товар, ценаЗакупки
кво, сумма.
как отследить изменения цен между двумя датами при наличии оборотов одним запросом?
При этом цена может поменяться посреди дня и закупки всегда ведутся по одной цене (на текущий момент).
Пишу
Select
     РОВ.КодПост [Товар:Справочник.ТМЦ],
     СпрТМЦ.Code КодТовара,
     Case Date When '20110101' Then ЦенаПост Else 0 End ЦенаПост1,
     Case Date When '20110101' Then 0 Else ЦенаПост End ЦенаПост2,
     РОВ.Поставщик [Пост:Справочник.Клиенты],
     Sum(Case Date When '20110101' Then ПриходКво Else 0 End) ПриходКво1,
     Sum(Case Date When '20110101' Then ПриходОсн Else 0 End) ПриходОсн1,
     Sum(Case Date When '20110101' Then 0 Else ПриходКво End) ПриходКво2,
     Sum(Case Date When '20110101' Then 0 Else ПриходОсн End) ПриходОсн2,
     СпрТМЦ.Descr ТоварИмя,
     Клиенты.Descr КлиентИмя
From
     Регистр_Обороты РОВ
     Left Join Справочник_Клиенты Клиенты On РОВ.Поставщик=Клиенты.ID
     Left Join Справочник_ТМЦ СпрТМЦ On РОВ.КодПост=СпрТМЦ.ID
Where
     (Date='20110101' Or Date='20110105')
     And (РасходКво<>0 or РасходОсн<>0 or ПриходКво<>0 or ПриходОсн<>0)
Group by РОВ.КодПост, РОВ.Поставщик, ЦенаПост1, ЦенаПост2
Order by РОВ.КодПост, ЦенаПост1

выдаёт таблицу вида
Товар Поставщик Цена1 Цена2 Кво1 Сумма1 Кво2 Сумма2
1 Поставщик1 1 0 10 10 0 0
2 Поставщик2 1 0 10 10 0 0
1 Поставщик1 0 1 0 0 10 10
1 Поставщик1 0 1.5 0 0 10 15
2 Поставщик2 0 1.4 0 0 5 7
как получить таблицу вида
Товар Поставщик Цена1 Цена2 Кво1 Сумма1 Кво2 Сумма2
1 Поставщик1 1 1.5 10 10 20 25 (либо 10/15 или что угодно еще для случая изменения цены в течении дня)
2 Поставщик2 1 1.4 10 10 5 7
?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: 1sqlite
Ответ #649 - 18. Января 2011 :: 06:21
Печать  
Зачетное условие в case ...

А так, не совсем ясно, причем тут цена и регистр и что получить хочешь.
  
Наверх
 
IP записан
 
ТочноеЯдро
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 28. Января 2010
Re: 1sqlite
Ответ #650 - 18. Января 2011 :: 10:31
Печать  
Зачет без пояснений не зачтен.
Цены хранятся в регистре. Не спрашивайте о причинах.
Хочу получить табличку с изменениями цен по поставщикам и товарам. Если цена изменилась в начале/конце дня, то из регистра вытащится одна строка на одну дату по одному клиенту/товару. Свернув ТЗ (или обернув предыдущий запрос в еще один селект) я получу требуемый результат (см. поставщик2 в таблицах выше). Но если цена поменялась в течении дня, а обороты были и до этого момента и после, то запрос выдаёт две строки на эту дату и одну строку на вторую дату (см. первую таблицу пред. поста). И тогда после свёртки получается неверная цена за день. Нужно чтобы в результате была одна строка с изменённой ценой.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: 1sqlite
Ответ #651 - 18. Января 2011 :: 11:27
Печать  
Ну возьми одну запись, через top 1 к примеру, а так, один чорт не понял что делаешь.
  
Наверх
 
IP записан
 
ТочноеЯдро
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 28. Января 2010
Re: 1sqlite
Ответ #652 - 18. Января 2011 :: 16:04
Печать  
топ 1 не для этой задачи
Не ленись, прочти хотя бы концовку поста с таблицами
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: 1sqlite
Ответ #653 - 19. Января 2011 :: 01:50
Печать  
ТочноеЯдро писал(а) 18. Января 2011 :: 16:04:
Не ленись, прочти хотя бы концовку поста с таблицами
И он еще обвиняет других в том, что сам не сформулировал задачу...
Казнить! Только казнить!
Ты не сможешь составить запрос до тех пор, пока сам не поймешь, что тебе надо ... самый простой способ понять - объяснить другим (с) Любой препод ВУЗа.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: 1sqlite
Ответ #654 - 19. Января 2011 :: 06:36
Печать  
ТочноеЯдро писал(а) 18. Января 2011 :: 16:04:
топ 1 не для этой задачи
Не ленись, прочти хотя бы концовку поста с таблицами


Мне непонятен вообще смысл твоего запроса.
Какой период между датами, если ты просто складываешь движения всегда в одной дате, а условием ограничил не выборку в периоде, а просто выборку в 2-х датах.
Что сделать надо - не ясно.
  
Наверх
 
IP записан
 
ТочноеЯдро
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 28. Января 2010
Re: 1sqlite
Ответ #655 - 21. Января 2011 :: 15:40
Печать  
ок, казнить нельзя помиловать.  Подмигивание
есть поставщик - фирма "1Ц" и у неё я покупаю коробки с известным продуктом.
Позавчера я купил 10 коробок у 1Ц по 100 р. Это зафиксировано в регистре.
Вчера я купил 20 коробок по 95 р., а сегодня до обеда 4 по 95, а после обеда 5 по 110р.
Итого 4 записи в регистре.

Мне нужно сравнить позавчерашние закупки с сегодняшними. Т.е. Вторая запись из регистра даже не должна рассматриваться.

Итого нужно увидеть такую таблицу :

Товар  Поставщик  Цена1  Цена2  Кво1  Сумма1  Кво2  Сумма2
Коробка   "1Ц"         100      110       10     1000       5        550
(цена 95 выпала т.к. промежуточная)

соответственно послезавтра если у меня цена будет 120 то таблица должна будет стать такой:

Товар  Поставщик  Цена1 Цена2  Кво1  Сумма1  Кво2  Сумма2
Коробка   "1Ц"           95     120      4        380        1        120
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: 1sqlite
Ответ #656 - 24. Января 2011 :: 02:12
Печать  
ТочноеЯдро писал(а) 21. Января 2011 :: 15:40:
ок, казнить нельзя помиловать.  Подмигивание
есть поставщик - фирма "1Ц" и у неё я покупаю коробки с известным продуктом.
Позавчера я купил 10 коробок у 1Ц по 100 р. Это зафиксировано в регистре.
Вчера я купил 20 коробок по 95 р., а сегодня до обеда 4 по 95, а после обеда 5 по 110р.
Итого 4 записи в регистре.

Мне нужно сравнить позавчерашние закупки с сегодняшними. Т.е. Вторая запись из регистра даже не должна рассматриваться.

Итого нужно увидеть такую таблицу :

Товар  Поставщик  Цена1  Цена2  Кво1  Сумма1  Кво2  Сумма2
Коробка   "1Ц"         100      110       10     1000       5        550
(цена 95 выпала т.к. промежуточная)

соответственно послезавтра если у меня цена будет 120 то таблица должна будет стать такой:

Товар  Поставщик  Цена1 Цена2  Кво1  Сумма1  Кво2  Сумма2
Коробка   "1Ц"           95     120      4        380        1        120

Т.е. тебе надо сравнить первую запись от ТекДата-2 с последней записью от ТекДата?
Тогда топ 1 здесь именно к месту, только сортировка разная...

И в этом случае тебе не в case надо даты передавать, а в where!
  
Наверх
 
IP записан
 
ТочноеЯдро
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 28. Января 2010
Re: 1sqlite
Ответ #657 - 28. Января 2011 :: 16:36
Печать  
Спасибо всем за конструктивные замечания.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Время в параметре
Ответ #658 - 02. Февраля 2011 :: 05:50
Печать  
Как передать время в запрос?
Пример: надо отобрать документы, введенные после обеда в определенную дату.
Индексом idx_DATE_TIME_IDDOC пользоваться умею, но не понимаю, как туда кроме даты передать еще и время... уж очень оно жутковато там хранится (например: 8FK2HS).
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #659 - 02. Февраля 2011 :: 06:03
Печать  
14:09:46
_idtostr((14*3600 + 9*60 + 46)*10000) = "8FK2HS"
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 42 43 [44] 45 46 ... 79
ОтправитьПечать