Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.014 c
3-1122058027
serguncho
2005-07-22 22:47
2005.09.04
SQL-запрос для выборки данных


5-1097476858
vg
2004-10-11 10:40
2005.09.04
Событие перемещения у родительской формы


14-1123506366
oldman
2005-08-08 17:06
2005.09.04
У меня IE глючит?


14-1123747444
peypivo
2005-08-11 12:04
2005.09.04
Хорошие кафешки в Киеве.


1-1124086008
Чайничек
2005-08-15 10:06
2005.09.04
Can not create file ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский