Смотрите следующий запрос.
Я хочу преобразовать в активные записи CodeIgniter.
SQL QUERY:
Select MobNo,Caller,Sum(Tot_In_Call) as Tot_In_Call,Called,Sum(Tot_Out_Call) as Tot_Out_Call
From (
SELECT CTE.Caller as MobNo,Incall.Caller,Incall.Tot_In_Call, Null as Called,0 as Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_In_Call,Caller,Called
from call_details
Group By Caller,Called
) InCall on (Cte.caller = InCall.Called)
Where InCall.Called in($call_array)
Group BY CTE.Caller,Incall.Caller,Incall.Tot_In_Call
Union All
SELECT CTE.Caller as MobNo,Null as Caller,Null as Tot_In_Call, OutCall.Called,OutCall.Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_Out_Call,caller,Called
from call_details
group by caller,called
) OutCall on (CTE.caller = OutCall.caller And cte.called = OutCall.called)
Where CTE.Caller in($call_array)
Group BY CTE.Caller,OutCall.Called,OutCall.Tot_Out_Call
) As Qry
WHERE Qry.MobNo in($call_array)
Group By Qry.MobNo,Qry.Caller,Qry.Called
order by Qry.MobNo,Qry.Caller,Qry.Called
Как я могу преобразовать это без использования $this->db->query()?
Пытался сделать, используя активную запись :-
$this->db->select("MobNo,Caller,Sum(Tot_In_Call) as Tot_In_Call,Called,Sum(Tot_Out_Call) as Tot_Out_Call");
$this->db->from("SELECT CTE.Caller as MobNo,Incall.Caller,Incall.Tot_In_Call, Null as Called,0 as Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_In_Call,Caller,Called
from call_details
Group By Caller,Called
) InCall on (Cte.caller = InCall.Called)
Where InCall.Called in($call_array)
Group BY CTE.Caller,Incall.Caller,Incall.Tot_In_Call
Union All
SELECT CTE.Caller as MobNo,Null as Caller,Null as Tot_In_Call, OutCall.Called,OutCall.Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_Out_Call,caller,Called
from call_details
group by caller,called
) OutCall on (CTE.caller = OutCall.caller And cte.called = OutCall.called)
Where CTE.Caller in($call_array)
Group BY CTE.Caller,OutCall.Called,OutCall.Tot_Out_Call");
$this->db->where_in("MobNo",$call_array);
$this->db->group_by("MobNo,Caller,Called");
$this->db->order_by("MobNo,Caller,Called","ASC");
$this->db->get();
Подробнее здесь: https://stackoverflow.com/questions/394 ... nd-order-b
Преобразование необработанного SQL, содержащего UNION, подзапросы, LEFT JOIN, GROUP BY и ORDER BY, в скрипт активной зап ⇐ Php
Кемеровские программисты php общаются здесь
1726524288
Anonymous
Смотрите следующий запрос.
Я хочу преобразовать в активные записи CodeIgniter.
[b]SQL QUERY:[/b]
Select MobNo,Caller,Sum(Tot_In_Call) as Tot_In_Call,Called,Sum(Tot_Out_Call) as Tot_Out_Call
From (
SELECT CTE.Caller as MobNo,Incall.Caller,Incall.Tot_In_Call, Null as Called,0 as Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_In_Call,Caller,Called
from call_details
Group By Caller,Called
) InCall on (Cte.caller = InCall.Called)
Where InCall.Called in($call_array)
Group BY CTE.Caller,Incall.Caller,Incall.Tot_In_Call
Union All
SELECT CTE.Caller as MobNo,Null as Caller,Null as Tot_In_Call, OutCall.Called,OutCall.Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_Out_Call,caller,Called
from call_details
group by caller,called
) OutCall on (CTE.caller = OutCall.caller And cte.called = OutCall.called)
Where CTE.Caller in($call_array)
Group BY CTE.Caller,OutCall.Called,OutCall.Tot_Out_Call
) As Qry
WHERE Qry.MobNo in($call_array)
Group By Qry.MobNo,Qry.Caller,Qry.Called
order by Qry.MobNo,Qry.Caller,Qry.Called
Как я могу преобразовать это без использования $this->db->query()?
Пытался сделать, используя активную запись :-
$this->db->select("MobNo,Caller,Sum(Tot_In_Call) as Tot_In_Call,Called,Sum(Tot_Out_Call) as Tot_Out_Call");
$this->db->from("SELECT CTE.Caller as MobNo,Incall.Caller,Incall.Tot_In_Call, Null as Called,0 as Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_In_Call,Caller,Called
from call_details
Group By Caller,Called
) InCall on (Cte.caller = InCall.Called)
Where InCall.Called in($call_array)
Group BY CTE.Caller,Incall.Caller,Incall.Tot_In_Call
Union All
SELECT CTE.Caller as MobNo,Null as Caller,Null as Tot_In_Call, OutCall.Called,OutCall.Tot_Out_Call
FROM Call_Details CTE
Left Join (
Select Count(Called) as Tot_Out_Call,caller,Called
from call_details
group by caller,called
) OutCall on (CTE.caller = OutCall.caller And cte.called = OutCall.called)
Where CTE.Caller in($call_array)
Group BY CTE.Caller,OutCall.Called,OutCall.Tot_Out_Call");
$this->db->where_in("MobNo",$call_array);
$this->db->group_by("MobNo,Caller,Called");
$this->db->order_by("MobNo,Caller,Called","ASC");
$this->db->get();
Подробнее здесь: [url]https://stackoverflow.com/questions/39487891/convert-raw-sql-containing-union-subqueries-left-joins-group-bys-and-order-b[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия