Разные SQL-запросы

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Запросы связананные с договорами)
Строка 9: Строка 9:
WHERE ct.id IS NULL AND contract.status=0
WHERE ct.id IS NULL AND contract.status=0
</source>
</source>
 +
--[[Участник:DimOn|dimOn]] 12:32, 17 февраля 2010 (UTC)
 +
 +
 +
Показывает сколько в каждом договоре каждых тарифов, по убыванию.
 +
<source lang="sql">
 +
SELECT contract_tariff.cid, contract_tariff.tpid, count(contract_tariff.id) as tariff_count
 +
FROM contract_tariff
 +
GROUP BY contract_tariff.cid, contract_tariff.tpid
 +
ORDER BY tariff_count DESC
 +
</source>
 +
или то же самое, с дополнительной инфой:
 +
<source lang="sql">
 +
SELECT count(contract_tariff.id) as tariff_count, contract_tariff.tpid, contract.id, contract.title, contract.comment, tariff_plan.title
 +
FROM contract_tariff
 +
LEFT JOIN contract ON contract.id=contract_tariff.cid
 +
LEFT JOIN tariff_plan ON tariff_plan.id=contract_tariff.tpid
 +
GROUP BY contract_tariff.cid, contract_tariff.tpid
 +
ORDER BY tariff_count DESC
 +
</source>
 +
--[[Участник:DimOn|dimOn]] 12:32, 17 февраля 2010 (UTC)

Версия 12:32, 17 февраля 2010

Запросы связананные с договорами

Все договоры, у которых статус "активен" и у которых на сегодня нет ни одного тарифного плана.

SELECT contract.id, contract.title, contract.comment, contract.STATUS, ct.id
FROM contract
	LEFT JOIN contract_tariff AS ct ON contract.id=ct.cid AND (ct.date1 IS NULL OR ct.date1<=CURDATE()) AND (ct.date2 IS NULL OR ct.date2>=CURDATE())
WHERE ct.id IS NULL AND contract.STATUS=0

--dimOn 12:32, 17 февраля 2010 (UTC)


Показывает сколько в каждом договоре каждых тарифов, по убыванию.

SELECT contract_tariff.cid, contract_tariff.tpid, count(contract_tariff.id) AS tariff_count
FROM contract_tariff
GROUP BY contract_tariff.cid, contract_tariff.tpid
ORDER BY tariff_count DESC

или то же самое, с дополнительной инфой:

SELECT count(contract_tariff.id) AS tariff_count, contract_tariff.tpid, contract.id, contract.title, contract.comment, tariff_plan.title
FROM contract_tariff
LEFT JOIN contract ON contract.id=contract_tariff.cid
LEFT JOIN tariff_plan ON tariff_plan.id=contract_tariff.tpid
GROUP BY contract_tariff.cid, contract_tariff.tpid
ORDER BY tariff_count DESC

--dimOn 12:32, 17 февраля 2010 (UTC)

Личные инструменты