• Cоставить SQL запрос?

    @wwi
    PS: последний QR1.Payment — лишний… он бессмысленный
    Ответ написан
    4 комментария
  • Cоставить SQL запрос?

    @wwi
    так и должно происходить
    Вы выбираете строку для каждого товара выбираете строку из ОПЛАТА
    и соответственно она суммируется столько раз, сколько у вас есть товарных строк.

    Рекомендую для более удобного чтения писать запросы через JOIN

    Если по счету может быть несколько оплат вам нужно использовать подзапросы
    1. Определить счет и подзапросом итог поступлений закрывающих счет
    2. определить его цену = сумму (итого по Naimen)
    3. вывести результат

    в реальных условиях, правильнее отслеживать счета закрытые оплатами
    (как минимум по признаку «счет оплачен полностью»)

    В вашей схеме — вы всегда проводите расчет по всей БД без ограничений…

    ниже запрос который выполнить вашу задачу (не оптимизированный):

    Select QR1.*,
    sum(Naimen.Kolvo*Naimen.Cena) AS SUMM,
    sum(Naimen.Kolvo*Naimen.Cena) — QR.Payment AS RAZN
    FROM (
    SELECT
    SCHET.Data,
    Postav.Nazv,
    Schet.Shet,
    Schet.id,
    Schet.OtKogo,
    ( Select sum(OPLATA.Opl) from Naimen Where Naimen.Shet = Schet.id ) As Payment
    FROM Schet
    JOIN Postav ON Postav.id=Schet.OtKogo
    JOIN Oplata ON Oplata.Shet = Schet.id
    GROUP BY
    Schet.Data,
    Postav.Nazv,
    Schet.Shet,
    Schet.id,
    Schet.OtKogo
    ) QR1
    JOIN Naimen ON Naimen.Shet = Schet.id
    GROUP BY QR1.Data,
    QR1.Nazv,
    QR1.Shet,
    QR1.id,
    QR1.OtKogo,
    QR1.Payment
    Ответ написан
    Комментировать
  • Cоставить SQL запрос?

    SkyRZN
    @SkyRZN Автор вопроса
    Хочется чтобы к счету который в таблиц Shet выводилась его сумма, сколько уже оплачено по нему и сколько оставалось оплатить, согласно формул:
    Сумма всех наименований (кол-во * цену)
    Сумма всех платежей
    Разность общей суммы товаров и сколько уже оплачено.

    Тоесть счет состоит из нескольких наименований, у которых прописана цена и кол-во, перемножаем цену и кол-во и складываем все наименования относящиеся только к этому счету.
    Тоже самое и с оплатой, в итоге все это выводим.
    Ответ написан
    Комментировать
  • Cоставить SQL запрос?

    Где то так )
    SELECT
      sc.data, 
      SUM(n.Kolvo * n.Cena) itogo,
      SUM(n.Kolvo * n.Cena)-IFNULL(o.opl,0) ostatok,
      o.opl,
      p.Nazv,
      sc.id
    FROM
      habr.naimen n
      LEFT JOIN
      habr.schet sc
      ON sc.id = n.Schet
      LEFT JOIN habr.postav p
      ON p.id = sc.OtKogo
      LEFT JOIN habr.oplata o
      on o.Schet = sc.id
    GROUP BY
      n.Schet
    
    Ответ написан
    1 комментарий
  • Cоставить SQL запрос?

    Искренне хотел вам помочь на за 5 минут не понял чего вы всетаки хотите.
    Думаю проблема в том, что вам надо исподьзовать join'ы и джойнить все к счету, это должно решить проблему дублей.

    А вообще названия полей вырвиглазные, читать неприятно. За одно Schet.shet вас тот кто будет поддерживать этот код возненавидит, уж используйте одно название.

    И вообще начните с чтения книг, это скучно но полезно.
    Ответ написан
    Комментировать
  • C запросом mysql?

    @Demetros
    Сделайте 2 запроса.
    Первый выбирает сообщение, включая ID пользователей, с ним связанных.
    Второй выбирает обоих пользователей по ID.

    В случае использования JOIN изменение в любой таблице влечет за собой сброс кеша запроса в базе.
    В случае двух запросов изменения например в таблице messages не будут сбрасывать кеш запроса по таблице пользователей, и наоборот.
    Ответ написан
    Комментировать
  • Помогите с регэкспом (Java)

    soider
    @soider
    Может стоит воспользоваться какой-нибудь библиотекой для работы с csv?
    Ответ написан
    1 комментарий
  • Помогите с регэкспом (Java)

    вы ему даёте .* и (.|\s)*, это жрёт всё подряд.
    Ответ написан
    2 комментария
  • Гуру ООП, помогите рассудить

    @f3ath
    php
    Правильнее — передавать объект сессии, а не создавать его внутри объектов-потребителей. Гуглить по словам «инверсия зависимостей».
    Ответ написан
    3 комментария
  • Гуру ООП, помогите рассудить

    xappymah
    @xappymah
    Сессии в любом случае нужно создавать снаружи и передавать объектам, чтобы не перегружать объекты тем функционалом (создание интернет-сессий), для которого они не предназначены.

    Далее, в данном конкретном абстрактном случае логичнее использовать одну сессию. По крайней мере не вижу причин создавать вторую.
    Ответ написан
    Комментировать
  • Гуру ООП, помогите рассудить

    @linqu
    Мне кажется это вопрос взаимодействия объектов. По логике вещей одно соединение — одна сессия. Но могут быть нюансы. Например два потока: управления и данных. Устанавливаются одновременно, работают параллельно. Тогда должен быть один общий объект сессии для обоих соединений (поток управления может изменить сессию, а поток данных может зависеть от новых данных). Общий итог: мне кажется все зависит от реального применения.
    Ответ написан
    Комментировать
  • C запросом mysql?

    sajgak
    @sajgak
    select users_from.login as login_from, users_to.login as login_to…
    LEFT JOIN users as users_from ON users_from.user_id = messages.message_from,
    LEFT JOIN users as users_to ON users_to.user_id = messages.message_to,
    Ответ написан
    Комментировать
  • C запросом mysql?

    ramilexe
    @ramilexe
    Сделать два джоина

    SELECT m.message_id, u1.login, u2.login
    FROM messages m
    LEFT JOIN users u1 ON m.message_from=u1.user_id
    LEFT JOIN users u2 ON m.message_to=u2.user_id
    Ответ написан
    4 комментария
  • Nginx + apache 2, ubuntu 11.10, 504-ая ошибка?

    taliban
    @taliban
    php программист
    Есть одно замечательное решение — очередь и отложенные действия. Советую поинтересоваться этой темой а не конвертировать реалтайм.
    Ответ написан
    2 комментария
  • Нагрузочное тестирование

    loadimpact.com/ с разных адресов вроде нагружает.
    Ответ написан
    Комментировать
  • Уловки с исходным кодом?

    Предлагаю вместо уловок с исходным кодом взять IDE, которая умеет блочно комментить. А это умеют практически все IDE, и даже текстовые редакторы, и даже vim (более того, он умеет «инвертировать» комментарии, что тоже полезно при определённых обстоятельствах).

    Но уловка — хорошая :)
    Ответ написан
    Комментировать
  • Как лучше реализовать entity в java?

    @sergei-grigorev
    В нашем продукте крайне важна производительность, потому что обрабатываются огромнейшие количества данных. Поэтому мы используем Entity на каждую таблицу, затем они переносятся в отдельные DAO объекты, которые реализуют логику связывания объектов, с предварительными проверками качества данных и т.п., а также возможностью подгружать данные не полностью. В этом случае часть данных, например специальные ключи, идентифицирующие записи или связи, подгружаются через jdbc, а не через Entity.
    Ответ написан
    1 комментарий
  • Базы Данных. в выборе темы дипломной работы?

    SharkyFLY
    @SharkyFLY
    Научный руководитель предложил тебе замечательную тему. По ней очень много информации на хабре и в целом во многом (но не во всем) там можно разобраться основываясь на собственной логике.
    Ответ написан
    2 комментария
  • Как в Java динамически подгружать изображения на JPanel?

    @in_finiti
    Илья Семенов
    Ребята, у кого есть аккаунт на Хабре, напишите насчастному что у него нет repaint после загрузки в панель, да и что сама панель у него видна (visible=true) исключительно на этапе создания нового layout, а то у меня сердце разрывается от предложенных ответов.
    Ответ написан
    1 комментарий
  • Вернуть привычный Gnome в Ubuntu 11.10

    Slightfox
    @Slightfox
    Вот здесь посмотрите
    Ответ написан
    Комментировать