Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: Профессионал
Рейтинг: 4993
∙ повысить рейтинг »
Жерар
Статус: Профессор
Рейтинг: 2423
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2240
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Базы данных / MySQL

Номер выпуска:467
Дата выхода:06.06.2011, 18:30
Администратор рассылки:Victor Pyrlik (Мастер-Эксперт)
Подписчиков / экспертов:296 / 136
Вопросов / ответов:3 / 8

Вопрос № 121818: Здравствуйте ув. эксперты! Есть такой вопрос, думаю не легкий. Есть таблица Товары (содержит информацию о товаре), а также три таблицы Магазин1, Магазин2, Магазин3. В них есть такие поля: ИдТовара, Наличие,Приход,Продажи. Мне надо составить з...


Вопрос № 73272: Доброго времени суток. У меня возникла проблема, в БД на MS SQL Server 2000 есть поле с типом float. Если я, например, в него добавляю значение 3233.20, то при выборке из этой таблицы это поле может стать равным 3233.199999(9)..причем не всегда т...
Вопрос № 48793: В продолжение вопроса 48215. Уважаемый IUnknown! Скажите, пожалуйста, что за поля и методы «КтоВБазе», «item» «GetPerformanceCounter()», «SaveAs», «Application.Documents», «Open»? Откуда они взялись в 1С? Это Visual Basic? Тогда почему 1С их пони...

Вопрос № 121818:

Здравствуйте ув. эксперты!
Есть такой вопрос, думаю не легкий. Есть таблица Товары (содержит информацию о товаре), а также три таблицы Магазин1, Магазин2, Магазин3. В них есть такие поля: ИдТовара, Наличие,Приход,Продажи.
Мне надо составить запрос так, чтобы в результате запроса были такие колонки: ну собственно сама информация о товара, а также Магазин1, Магазин2, Магазин3. В последних трех колонках должно стоять количество товара в данном магазине, а если такого нету, то нуль. Это количество берется из поля Наличие в каждой таблице Магазин.
Не знаю, может я как-то неправильно составил таблицы и связь между ними, но я уже долго мучаюсь, а такого запроса составить не могу. Возвращает тока те товары, которые есть во всех трех магазинах. Но мне надо получить именно такой результат.
ЗЫ: В таблицах Магазин хранится инфа тока о том товаре, который там есть, т.е. нулей нету.
ЗЫ:ЗЫ: делаю в MS Access

Отправлен: 05.02.2008, 19:16
Вопрос задал: BerdArt (3-й класс)
Всего ответов: 4
Страница вопроса »


Отвечает Zubex (Студент) :
Здравствуйте, BerdArt!
Таблицы, на мой взгляд, дествительно составлены не правильно. Вместо 3-х таблиц магазинов надо было сформировать таблицу "Магазины" со столбцами ID, MAGAZ_NAME, а также одну таблицу типа "Склад" с полями ИдМагазина,ИдТовара, Наличие,Приход,Продажи. Ну и связать их по Ид. Это позволит не привязываться только к трем магазинам.

Но и в Вашем случае можно составить запрос примерно такого вида:
select т.Ид, [т.остальные поля,]
(select м1.Наличие from Магазин1 м1 where м1.ИдТовара=т.Ид) mag1,
(select м2.Наличие from Магазин2 м1 where м2.ИдТовара=т.Ид) mag2,
(select м3.Наличие from Магазин3 м3 where м3.ИдТовара=т.Ид) mag3
from Товары т

Удачи! Беларусь, Минск
Организация: РУП "Белгослес"
ICQ # 262505290

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

Ответ отправил: Zubex (Студент)
Ответ отправлен: 05.02.2008, 22:25

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 208690 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Тесленко Евгений Алексеевич (Практикант) :
    Здравствуйте, BerdArt!
    Создайте групповой запрос с параметрами объединения:
    Всех записей из таблицы товары с таблицей Магазин1, в которых связанные поля совпадают.
    FROM Товары LEFT JOIN Магазин1 ON Товары.Id_Товары = Магазин1.Id_Товары

    "Три последних" могут формироваться так:
    Sum(IIf(IsNull([Магазин?]![количество]),0,[Магазин?]![количество]))

    Евгений. Россия, Сургут
    Тел.: 79128150743
    Абонент Skype: Teslenko_EA

    Ответ отправил: Тесленко Евгений Алексеевич (Практикант)
    Ответ отправлен: 06.02.2008, 02:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 208710 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Челноков Виктор Альбертович (Студент) :
    Здравствуйте, BerdArt!
    Используйте в запросе объеденение один ко многим.
    Т.е. одна запись в табл товары и много записей в табл. магазин.

    Ответ отправил: Челноков Виктор Альбертович (Студент)
    Ответ отправлен: 06.02.2008, 08:54

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 208736 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Serge R. Bochkareff :
    Здравствуйте, BerdArt!
    Видимо вам необходимо сделать объединение трех запросов. Точно не помню, но в оракле есть такая штука как union

    select field1, field2, field3
    from table1
    where ...
    union all
    select field1, field2, field3
    from table2
    where ...
    union all
    select field1, field2, field3
    from table3
    where ...

    А похорошему таблица магазинов должна быть одна. Должно быть поле определяющее id магазина

    table good
    gid
    name
    price_buy
    price_sale
    .. etc

    table shops
    sid
    name
    address

    table container
    cid
    gid
    sid
    count
    sold
    shipping
    income

    Что-то в этом духе. Не стоит хранить в принципе одни и те же данные в разных таблицах.

    Ответ отправил: Serge R. Bochkareff
    Ответ отправлен: 06.02.2008, 09:12

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 208742 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 73272:

    Доброго времени суток.
    У меня возникла проблема, в БД на MS SQL Server 2000 есть поле с типом float. Если я, например, в него добавляю значение 3233.20, то при выборке из этой таблицы это поле может стать равным 3233.199999(9)..причем не всегда такое происходит, и как это разрешить я не знаю. Округлять возможности нет, поэтому прошу вашего совета
    Заранее благодарен

    Отправлен: 30.01.2007, 13:43
    Вопрос задал: Mefisto
    Всего ответов: 3
    Страница вопроса »


    Отвечает Базанов Иван Александрович :
    Здравствуйте, Mefisto!
    Используйте тип данных numeric или decimal, установив параметр scale в 2

    Ответ отправил: Базанов Иван Александрович
    Ответ отправлен: 30.01.2007, 14:04

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 140065 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Архангельский Андрей Германович (Специалист) :
    Здравствуйте, Mefisto!

    В Firebird эту проблему решили просто Double Float хранится физически как Integer64
    И при указании Number(18.4) получаем число с плавающей запятой с четыремя знаками (или сколько надо) после запятой всегда Россия, Москва
    Тел.: 7 495 724-4806
    Организация: ЗАО "АЗет Дизайн"
    Адрес сайта: Разработка бухгалтерских программ и баз данных
    Абонент Skype: az-design

    -----
    Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

    Ответ отправил: Архангельский Андрей Германович (Специалист)
    Ответ отправлен: 30.01.2007, 15:29

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 140078 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Grigory (Практикант) :
    Здравствуйте, Mefisto!
    Вот, что пишет SQL Server 2000 Help про float datatype:
    Approximate number data types for use with floating point numeric data. Floating point data is approximate; not all values in the data type range can be precisely represented.
    Поэтому, если Вы хотите получать неприблизительные значения, лучше будет использовать Decimal. Если все, что вам нужно - это 2 знака после запятой, то надо указать значение scale=2 при создании таблицы (design). Надеюсь, Вам эта информация поможет разобраться.

    Удачи!

    Григорий США, Пеннсильвания
    Адрес сайта: Страничка моего клуба
    ICQ # 11113677
    Mail.ru-агент: grigorythegreat@mail.ru
    Абонент Skype: grigory_rubinstein

    -----
    Если хочешь быть счастливым - будь им! (Козьма Прутков)

    Ответ отправил: Grigory (Практикант)
    Ответ отправлен: 30.01.2007, 17:07

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 140096 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 48793:

    В продолжение вопроса 48215. Уважаемый IUnknown! Скажите, пожалуйста, что за поля и методы «КтоВБазе», «item» «GetPerformanceCounter()»,
    «SaveAs», «Application.Documents», «Open»? Откуда они взялись в 1С? Это Visual Basic? Тогда почему 1С их понимает? И ещё. Касперский говорит в момент запуска Вашего "Монитора пользователей", что "запущено потенциально опасное ПО". Почему он так говорит?

    Отправлен: 11.07.2006, 08:56
    Вопрос задал: Paul-Leon
    Всего ответов: 1
    Страница вопроса »


    Отвечает IUnknown :
    Здравствуйте, Paul-Leon!
    ну во-первых данный монитор не мой... автор Гинзбург Олег (г. Свердловск)...
    далее за методы...

    GetPerformanceCounter(), а точнее _GetPerformanceCounter() - это не документированая функция 1С, которая показывает время (в милисикундах) прошедшее со времени включения компьютера...

    в кратце... данная обработка создает, используя механизм OLE, документ ворд и возвращает его, ссылку на него 1С... далее уже 1С через ворд узнает нужную информацию о пользователях 1С...

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

    ну и более подробную информацию именно о самом мониторе вы можете посмотреть на форму мисты ... с подробными пояснениями самого автора...

    для этого вам надо пройти по следующей ссылке:
    http://www.forum.mista.ru/topic.php?id=182339

    Ответ отправил: IUnknown
    Ответ отправлен: 11.07.2006, 09:42

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 106428 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    подать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное