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

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

(Различия между версиями)
Перейти к: навигация, поиск
(добавил скрипт)
(Запросы связананные с договорами)
Строка 4: Строка 4:
<source lang="sql">  
<source lang="sql">  
-
SELECT contract.id, contract.title, contract.comment, contract.status, contract_tariff.tpid, contract_tariff.date1, contract_tariff.date2
+
SELECT contract.id, contract.title, contract.comment, contract.status, ct.id
FROM contract
FROM contract
-
LEFT JOIN contract_tariff ON contract_tariff.cid=contract.id
+
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
+
WHERE ct.id IS NULL AND contract.status=0
-
(
+
-
contract.status=0
+
-
)
+
-
AND
+
-
(
+
-
(
+
-
contract_tariff.tpid is null
+
-
)
+
-
OR
+
-
(
+
-
(contract_tariff.date1 is not null AND contract_tariff.date1 > now() ) OR (contract_tariff.date2 is not null AND contract_tariff.date2 < now() )
+
-
)
+
-
)
+
</source>
</source>

Версия 12:06, 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
Личные инструменты