forum.bitel.ru
http://forum.bitel.ru/

Помогите с SQL запросом
http://forum.bitel.ru/viewtopic.php?f=22&t=5543
Страница 1 из 1

Автор:  max [ 30 май 2011, 15:36 ]
Заголовок сообщения:  Помогите с SQL запросом

Имеется запрос следующего вида
Код:
SELECT * FROM
 (SELECT
  contract_account.yy,
  contract_account.mm,
  contract_account.cid,
  contract_account.sid,
  sum(contract_account.summa),
  service.title,
  contract.title as contractnumber,
  contract.comment as contractorganisation   
 FROM
  contract_account,
  service,
  contract
 WHERE
  contract_account.cid = contract.id
  AND contract_account.sid = service.id
  AND contract_account.summa <> 0
  AND contract_account.yy = 2011
  AND contract_account.mm = 5
 GROUP BY
  contract_account.cid,
  service.title
 WITH ROLLUP) AS T1
 ORDER BY
  T1.cid,
  T1.title

в него нужно добавить вывод входящего остатка на начало месяца тоесть contract_balance.summa1 подскажите плиз как?

Автор:  Phricker [ 30 май 2011, 16:02 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

Странный запрос :?

Автор:  snark [ 30 май 2011, 16:24 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

Изображение

JOIN-ы по религиозным соображениям не используются?
Чего вообще вывести то надо?

Автор:  skyb [ 30 май 2011, 16:28 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

snark писал(а):
Изображение

:lol: :lol: :lol: :lol:

Автор:  max [ 30 май 2011, 16:45 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

snark писал(а):
Изображение

JOIN-ы по религиозным соображениям не используются?
Чего вообще вывести то надо?

запрос писал не я
дополнительно к выводимому нужно вывести входящий остаток на начало месяца

Автор:  snark [ 30 май 2011, 17:01 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

max писал(а):
нужно вывести входящий остаток на начало месяца

"Внимание, вопрос"(с) - какого месяца?
У Вас вообще нет понятия год/месяц в запросе про балланс, а оные балансы как раз по годам/месяцам лежат.

Вам бы, запрос бы, переписать бы. Кривой он у Вас, как турецкая сабля, IMHO.

Автор:  max [ 30 май 2011, 17:04 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

snark писал(а):
max писал(а):
нужно вывести входящий остаток на начало месяца

"Внимание, вопрос"(с) - какого месяца?
У Вас вообще нет понятия год/месяц в запросе про балланс, а оные балансы как раз по годам/месяцам лежат.

хм, действительно, вообще месяц нужен текущий!

Автор:  snark [ 30 май 2011, 17:31 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

Я малость ошибся - даты есть
Код:
AND contract_account.yy = 2011
AND contract_account.mm = 5

но кривизну запроса это не отменяет.
Для начала его надо переписать с использованием JOIN-ов, IMHO.

Автор:  max [ 30 май 2011, 17:46 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

ну я этого точно не осилю

Автор:  Phricker [ 31 май 2011, 11:11 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

Было
Читать примечание к пункту 3. Ничего личного, но думаю за 5 месяцев можно понять о чем речь и загуглить (при условии, что ссылки читались). У вас ОЧЕНЬ и ОЧЕНЬ странный запрос)

Автор:  max [ 01 июн 2011, 13:44 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

блин, ну если бы я мог это сделать наверное я бы сделал это, а не просил помощи, если не можешь / не хочешь / лень помочь, то промолчи и не засоряй эфир, просьба писать только по делу! :evil:

Автор:  max [ 06 июн 2011, 16:06 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

может ктонить за 500 рублей возьмётся? оплата по безналу на карточку.

Автор:  Phricker [ 06 июн 2011, 17:29 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

Код:
SELECT T1.*, contract_balance.summa1 FROM
 (SELECT
  contract_account.yy,
  contract_account.mm,
  contract_account.cid,
  contract_account.sid,
  sum(contract_account.summa),
  service.title,
  contract.title as contractnumber,
  contract.comment as contractorganisation   
 FROM
  contract_account,
  service,
  contract
 WHERE
  contract_account.cid = contract.id
  AND contract_account.sid = service.id
  AND contract_account.summa <> 0
  AND contract_account.yy = 2011
  AND contract_account.mm = 5
 GROUP BY
  contract_account.cid,
  service.title
 WITH ROLLUP) AS T1, contract_balance
 where contract_balance.cid = T1.cid
 and contract_balance.mm = 5
 and contract_balance.yy = 2011
 ORDER BY
  T1.cid,
  T1.title

навскидку.
без денег только прошу :facepalm:

Автор:  max [ 06 июн 2011, 18:29 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

спасибо то что нада, если на счёт денег передумаешь шли реквизиты в ПМ

Автор:  Phricker [ 06 июн 2011, 18:36 ]
Заголовок сообщения:  Re: Помогите с SQL запросом

max писал(а):
спасибо то что нада, если на счёт денег передумаешь шли реквизиты в ПМ

Если бы не болел - взял бы на пиво :lol:
Удачи вам в освоении SQL'я )

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/