|
v7: найти отличия в таблицах SQL | ☑ | ||
---|---|---|---|---|
0
monsterZE
20.12.13
✎
16:05
|
собираю две таблички Т1 и Т2 с полями - ключ, свойство
Т1 А - 1 А - 2 А - 3 Б - 1 Т2 А - 1 А - 2 Б - 1 как выщемить эту А - 3 запись? =) |
|||
1
mikecool
20.12.13
✎
16:07
|
объединить все, условие свойство есть нул
|
|||
2
toypaul
гуру
20.12.13
✎
16:08
|
select * from t1 where not exist (select * form t2 where t2.k=t.1 and t2.s=t1.s)
|
|||
3
mikecool
20.12.13
✎
16:11
|
(2) а если во второй больше записей?
|
|||
4
toypaul
гуру
20.12.13
✎
16:11
|
select * from t1 full join t2 on t1.k=t2.k and t1.s=t2.s
where t1.k is null or t2.k is null это найдет разницу в 2х таблицах. |
|||
5
toypaul
гуру
20.12.13
✎
16:12
|
(3) задачу надо формулировать точно. написано как "выщемить" конкретную запись в конкретной таблице.
если надо найти записи из обеих таблиц, то см (2) |
|||
6
Ёпрст
20.12.13
✎
16:14
|
except не предлагать ?
:) |
|||
7
mikecool
20.12.13
✎
16:14
|
(6) а что есть except?
|
|||
8
mikecool
20.12.13
✎
16:15
|
+7 тогда уж INTERSECT
|
|||
9
MKZM
20.12.13
✎
16:15
|
А 1с при чем? Неужели майдан и здесь?
|
|||
10
Ёпрст
20.12.13
✎
16:34
|
(8) ошибаешься.. ему не пересечение множества надо - а различие..
|
|||
11
monsterZE
20.12.13
✎
16:55
|
(10) угу, причем одна табличка в приоритете
(2) спасибо вот такое нечто получилось |SELECT | Т1.К as [Док $Документ.РасходнаяНал] | ,Т1.С as [Склад $Справочник.СкладыТ] |FROM | ( | SELECT DISTINCT | ДокР.IDDoc as К | ,$СпрТов.СкладТ as С | FROM | $Документ.РасходнаяНал as ДокР (NOLOCK) | INNER JOIN | _1SJourn as Жур (NOLOCK) ON Жур.IDDoc = ДокР.IDDoc | AND Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.Closed & 1 = 1 | INNER JOIN | $ДокументСтроки.РасходнаяНал as ДокРСтр (NOLOCK) ON ДокРСтр.IDDoc = ДокР.IDDoc | INNER JOIN | $Справочник.Товары as СпрТов (NOLOCK) ON СпрТов.ID = $ДокРСтр.Товар | WHERE | $ДокР.ПризнакНакладной = $Перечисление.ПризнРасхНакл.Продажа | ) as Т1 |WHERE NOT EXISTS | ( | SELECT | Т2.К | ,Т2.С | FROM | ( | SELECT | $Спр.Док as К | ,$Спр.Склад as С | FROM | $Справочник.СтатОтгрузки as Спр (NOLOCK) | WHERE | $Спр.ДатаДляОтбора BETWEEN :НачДата AND :КонДата | ) as Т2 | WHERE Т2.К = Т1.К AND Т2.С = Т1.С | ) |
|||
12
Ёпрст
20.12.13
✎
16:57
|
(11) и.. смысл от такиго количества присоединеяемых табличек, раз их нет ни в селекте, ни в условиях ?
|
|||
13
Ёпрст
20.12.13
✎
16:57
|
или это не весь запрос ?
|
|||
14
monsterZE
20.12.13
✎
16:58
|
т.е. должны выбраться документы не "отправленные на склад"
смысл присоединений добраться до склада товара |
|||
15
monsterZE
20.12.13
✎
16:59
|
он свойство товара в тч документа не фигурирует
|
|||
16
monsterZE
20.12.13
✎
17:03
|
ну и я из первого запроса пару полей удалил.. =) пока переставлял их туда-сюда в джойнах
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |