|
|
|
И мне, плиз, помогите с запросом1
|
|||
|---|---|---|---|
|
#18+
CREATE TABLE dbo.Logs ( ID int IDENTITY (1, 1) NOT NULL , DateLog smalldatetime NOT NULL , FileName varchar (255) NOT NULL ) CREATE TABLE dbo.MaskINCopyer ( ID int IDENTITY (1, 1) NOT NULL , Mask varchar (12) NOT NULL ) Logs содержит записи таким образом, что есть записи с совпадающими полями DateLog и FileName. Интерес представляют только записи с неповторяющимися именами файлов в пределах одной даты. Т.е. в выбоке могут быть записи с повторяющимися именами файлов, но с разными датами. В таблице Mask лежат маски для этих файлов, под которые файлы либо подходят, либо нет. Нужно выбрать все маски и количество файлов подходящих под эти маски. Если под маску не подходит ни один файл, то нужно вывести 0. У меня получился такой монстр. create table #a (DateLog char(8), FileName varchar(255)) INSERT #a select distinct convert(char(4),datepart(year,DateLog))+convert(VARchar(2),datepart(month,DateLog))+convert(VARchar(2),datepart(day,DateLog)), filename FROM logs SELECT Mask, 0 FROM MaskInCopyer WHERE Mask NOT IN (SELECT Mask FROM MaskInCopyer,#a WHERE FileName LIKE Mask) UNION SELECT Mask, count(FileName) FROM MaskInCopyer,#a WHERE FileName LIKE Mask GROUP BY Mask Как все это упростить?: 1) Как избавиться от временной таблицы, т.е. можно ли все сделать одним запросом? 2) Как по другому можно сделать distinct convert(char(4),datepart(year,DateLog))+convert(VARchar(2),datepart(month,DateLog))+convert(VARchar(2),datepart(day,DateLog)), т.е. как заменить это огромное выражение? distinct convert(varchar(3),datepart(dy,DateLog)) не пойдет, так как интервал дат не ограничивается одним годом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2002, 12:01:21 |
|
||
|
И мне, плиз, помогите с запросом1
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2002, 12:40:19 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32052610&tid=1820119]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 381ms |

| 0 / 0 |
