Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

доступ к результатам запроса   Найти похожие ветки 

 
777   (2005-07-26 12:43) [40]

так не прокатит:
1-ая база MS Access
2-ая база MS SQL Server
Query1:
SELECT
 (iif(InStr([F2], "(") > 0, Mid([F2], 1, InStr([F2], "(") - 1), iif(InStr([F2], "/") > 0, Mid([F2], 1, InStr([F2], "/") - 1), iif(InStr([F2], ",") > 0, Mid([F2], 1, InStr([F2], ",") - 1), [F2])))) AS Name,
 (iif(InStr([F2], "(") > 0, Mid([F2], InStr([F2], "(")), iif(InStr([F2], "/") > 0, Mid([F2], InStr([F2], "/")), iif(InStr([F2], ",") > 0, Mid([F2], InStr([F2], ",") + 1), Null)))) AS Characteristics,
 F14 AS Price,
 F6 AS Presence,
 "1-" + F1 AS Code
FROM Лист1
WHERE ((Лист1.F9) <> "") AND ((Лист1.F2) <> "Наименование товаров")
UNION ALL
SELECT
 (iif(InStr([F5], "(") > 0, Mid([F5], 1, InStr([F5], "(") - 1), iif(InStr([F5], "/") > 0, Mid([F5], 1, InStr([F5], "/") - 1), iif(InStr([F5], "<") > 0, Mid([F5], 1, InStr([F5], "<") - 1), iif(InStr([F5], "[") > 0, Mid([F5], 1, InStr([F5], "[") - 1), iif(InStr([F5], ",") > 0, Mid([F5], 1, InStr([F5], ",") - 1), [F5])))))) AS Name,
 (iif(InStr([F5], "(") > 0, [F6] + Mid([F5], InStr([F5], "(")), iif(InStr([F5], "/") > 0, [F6] + Mid([F5], InStr([F5], "/")), iif(InStr([F5], "<") > 0, [F6] + Mid([F5], InStr([F5], "<"), InStr([F5], ">")), iif(InStr([F5], "[") > 0, [F6] + Mid([F5], InStr([F5], "[")), iif(InStr([F5], ",") > 0, Mid([F5], InStr([F5], ",") + 1), [F6])))))) AS Characteristics,
 F9 AS Price,
 F10 AS Presence,
 "2-" + Trim(Str(F14)) AS Code
FROM In_a
WHERE (((In_a.F14) <> 0) AND ((In_a.F1) <> "Категория"))
многие функции, которые стандартные для аксес, не знакомы SQL Server, поэтому этот запрос будет для него... синтаксически неверен


 
Fay ©   (2005-07-26 12:45) [41]

2 msguns ©   (26.07.05 12:40) [39]
>> Так не корректно
Лишние поля как раз не волнуют (в отличие от сортировок и параметров).
Я привёл частное решение, и оно вполне корректное в частном случае.
Автор уже читает какой-то букварь, так что не вижу необходимости в расширенной образовательной пограмме с рассмотрением разных ситуаций.


 
Fay ©   (2005-07-26 12:53) [42]

2 Fay ©   (26.07.05 12:45) [41]
Тогда запрос с параметрами. Адназначна!


 
ANB ©   (2005-07-26 12:59) [43]


> 753   (26.07.05 12:27) [35]

А в запросе что ?


 
Ega23 ©   (2005-07-26 13:06) [44]

2 777   (26.07.05 12:43) [40]

Какой ужас....


 
777   (2005-07-26 13:14) [45]

в запросе извлекаются данные из листов Excel, которые связанными таблицами вставляются в Access (это для Ega23, ANB)


 
Ega23 ©   (2005-07-26 13:15) [46]

2 777   (26.07.05 13:14) [45]

Это я понял. просто ужасно это всё...


 
753   (2005-07-26 13:18) [47]

да вот, а вы мне еще комплиментов отвешали кучу целую. ну это не к теме уже. короче, делаю сейчас всё, как начал: [0]


 
msguns ©   (2005-07-26 13:31) [48]

>777   (26.07.05 13:14) [45]
>в запросе извлекаются данные из листов Excel, которые связанными таблицами вставляются в Access (это для Ega23, ANB)

Повыбвав бы ! А просто макрос в екселе или модуль в ацессе нельзя было написать, авжеш ? Вот обязательно как забить гвоздь, так обязательно микроскопом !


 
Fay ©   (2005-07-26 13:33) [49]

2 msguns ©   (26.07.05 13:31) [48]
А макросе не придётся публиковать логин/пароль?


 
Ega23 ©   (2005-07-26 13:36) [50]

2 msguns ©   (26.07.05 13:31) [48]
Повыбвав бы ! А просто макрос в екселе или модуль в ацессе нельзя было написать, авжеш ? Вот обязательно как забить гвоздь, так обязательно микроскопом !

Причём через жопу.


 
Lexer ©   (2005-07-26 13:41) [51]

>[49] Fay ©   (26.07.05 13:33) [49]
>А макросе не придётся публиковать логин/пароль?

Всё решается установкой пароля на проект в книге Excel


 
ANB ©   (2005-07-26 13:57) [52]

Ну, для совсем разнородных средств такой подход (через клиента на Delphi), наверное, самый простой. Я переносил данные из оракла в мс скуль и тоже так делал.
Автору : запубликуй ТЗ, подкину пример кода.
(фиксировано ли количество полей в запросе - источнике, одинаковый ли тип данных в одном поле)


 
753   (2005-07-26 14:10) [53]

Лучше подкиньте хорошую инфу на нормальном языке (в смысле попроще) по запросам с параметрами


 
Fay ©   (2005-07-26 14:12) [54]

1) F1 рулит.
The following code runs an insert query to add a record for Liechtenstein into the country table.

Query2.SQL.Clear;

Query2.SQL.Add("INSERT INTO COUNTRY (NAME, CAPITAL, POPULATION)");
Query2.SQL.Add("VALUES (:Name, :Capital, :Population)");

Query2.Params[0].AsString := "Liechtenstein";
Query2.Params[1].AsString := "Vaduz";
Query2.Params[2].AsInteger := 420000;
Query2.ExecSQL;

2) Нужно купить другой букварь


 
753   (2005-07-26 14:14) [55]

ТЗ:
конечная цель - актуальные цены на сайте, которые берутся из БД на SQL Server
1. Получаем прайсы от поставщиков в формате Excel, все разнородные, нам надо получить сводный унифицированный прайс с колонками цена, наличие, наименование товара, характеристики, код поставщика
2. Нам надо сравнить то, что есть в прайсе с нашим прайсом: проставить внутренний для нащей конторы код изделия, нашу цену.


 
777   (2005-07-26 14:16) [56]

Всё делается с целью слежения за ценой: если она в пределах 8-10% (наценка), то всё тип-топ, если нет, то тогда формируется новый приказ о ценах, куда включаются товары, с "плохой" ценой


 
Ega23 ©   (2005-07-26 14:17) [57]

И ты ЭТО называешь ТЗ??????????????????


 
777   (2005-07-26 14:18) [58]

2 Fay
в ран-тайм query как-то на параметры настраивается? как?


 
имя   (2005-07-26 14:19) [59]

Удалено модератором


 
777   (2005-07-26 14:27) [60]

и тишина...
и мертвые с косами стоят...


 
Lexer ©   (2005-07-26 14:30) [61]


753   (26.07.05 14:14) [55]
ТЗ:
1. Получаем прайсы от поставщиков в формате Excel, все разнородные, нам надо получить сводный унифицированный прайс с колонками цена, наличие, наименование товара, характеристики, код поставщика
2. Нам надо сравнить то, что есть в прайсе с нашим прайсом: проставить внутренний для нащей конторы код изделия, нашу цену.


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


 
777   (2005-07-26 14:36) [62]

да я тоже решил, но работает всё медленно, пожтому вот переделываю


 
msguns ©   (2005-07-26 14:55) [63]

>753   (26.07.05 14:14) [55]
>1. Получаем прайсы от поставщиков в формате Excel, все разнородные, нам надо получить сводный унифицированный прайс с колонками цена, наличие, наименование товара, характеристики, код поставщика
2. Нам надо сравнить то, что есть в прайсе с нашим прайсом: проставить внутренний для нащей конторы код изделия, нашу цену.

>777   (26.07.05 14:16) [56]
>Всё делается с целью слежения за ценой: если она в пределах 8-10% (наценка), то всё тип-топ, если нет, то тогда формируется новый приказ о ценах, куда включаются товары, с "плохой" ценой

Чем торгует фирма, танкерами ?
С ширпотребом так не работают. Существует целое море оптовых и не оптовых скидок, варьируемых поставщиком постоянно. Кроме того, поставщик может диктовать выходную цену, объемы реализации, ассортмент. А также может предоставлять отсрочки, кредиты, лизинги и фиг знает чего еще. Помимо этого существует еще разнопроизвоизводители, когда одноименный товар с разными потребительскими качествами делается на  разных заводах-фабриках и т.д.

И все это в "сводный унифицированный прайс" ?


 
msguns ©   (2005-07-26 14:59) [64]

Кстати, а че за петрушка с никами, какой-то семь-восемь-надцать огурец ? Зарегиться амулет не дает ? Или там на шару пол-конторы сбежалось поржать ?


 
имя   (2005-07-26 15:10) [65]

Удалено модератором


 
ANB ©   (2005-07-26 15:43) [66]

Усе понятно, в принципе. Ega23 - не ругайся, я так и просил.
Короче : создаешь таблицу для закачки прайса с фиксированными колонками. Можно заранее, ручками (про временные - сам поищи инфу, не копался), можно через ADOQuery. Если заранее - не забудь из нее все удалить, перед закачкой. Поля заводишь один к одному по порядку, как в запросе источнике.
Дальше делаешь так : (пишу примерно, сам отладишь).
dsSrc и dsInsert : TAADOQuery;
dsInsert.SQL.Text :=
"insert into T_Price (F1, F2, F3) values (:F1, :F2, :F3)";
// Предущую строчку можешь сгенерить на автомате. F1, F2, F3 заменишь на имена своих полей.
dsSrc.Open;
while (not dsSrc.Eof) do begin
for i := 0 to dsSrc.FieldCount - 1 do begin
 dsInsert.Params[i].AsString := dsSrc.Fields[i].AsString;
end;
dsInsert.ExecSQL;
dsSrc.Next;
end;
dsSrc.Close;
Ограничение - количество параметров в insert должно строго соответсвовать количеству полей в запросе. И порядок тоже. Если будут вариации - сам допишешь.


 
msguns ©   (2005-07-26 15:56) [67]

>753   (26.07.05 15:10) [65]
>а это всё так важно, да?! я вообще не завсегдатай зздесь.

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

ЗЫ. Выйти на улицу чужого города непричесанным или в грязных ботах - это неприлично, а сунутья на форум с ником семь-восемь в порядке вещей.

>>Чем торгует фирма, танкерами ?
>это тоже не имеет отношения к делу. всё уже учтено: все скидки и всё такое

Неужели ? Открою оочень большой секрет: в фармации одна система работы с дилерами и реселлерами, в продуктовке - другая, в стройматериалах - совсем третья и т.д. Но, видимо, программиста это не волнует, т.к. "студент еще"

Одно могу сказать с уверенностью: "сводный" прайс подобный тому, то в "ТЗ" - это галиматья, лишь мешающая менеджерам нормально работать с партнерами и очень скоро твой "шедевр" будут просто игнорировать.
Проверено на практике, и не раз.

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



Страницы: 1 2 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.043 c
1-1123828681
.ruslan
2005-08-12 10:38
2005.09.04
Сколько прошло с указанной даты?


14-1123602986
maxim_mm
2005-08-09 19:56
2005.09.04
управление удалёнными компами


1-1123684567
Андрей Молчанов
2005-08-10 18:36
2005.09.04
FindFirst против ShellApi


14-1122646602
TUser
2005-07-29 18:16
2005.09.04
Басаев на TV


4-1121536776
nosochek
2005-07-16 21:59
2005.09.04
CreateProcess , неверный дескриптор