Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
	
		
		
			Правила форума
			При создании новой темы не забывайте указывать используемую СУБД.
		
		
	 
	
		
		
			
			- 
				Dmitriy Solomnikov
			
- 
				
- Постоялец
  
- 
			
			
-  
- Сообщения: 407
- Зарегистрирован: 10.11.2004 (Ср) 13:04
- Откуда: Москва
- 
				
			
			
			
			 Dmitriy Solomnikov » 24.07.2006 (Пн) 15:58
 Dmitriy Solomnikov » 24.07.2006 (Пн) 15:58 
			
			не работает запрос
SELECT CASE MAX(Код_контрагента) WHEN null then 0 else MAX(Код_контрагента) END FROM Контрагенты
Все время выдает NULL, хотя в базе нет никаких записей и должен выдавать 0, при условии, что просто 
SELECT MAX(Код_контрагента) FROM Контрагенты
выдает NULL.
 
		
		 
	 
	
	
	
	
		
		
			
			- 
				Dmitriy Solomnikov
			
- 
				
- Постоялец
  
- 
			
			
-  
- Сообщения: 407
- Зарегистрирован: 10.11.2004 (Ср) 13:04
- Откуда: Москва
- 
				
			
			
			
			 Dmitriy Solomnikov » 24.07.2006 (Пн) 16:45
 Dmitriy Solomnikov » 24.07.2006 (Пн) 16:45 
			
			с одной проблемой разобрались, появилась другая:
INSERT INTO Контрагенты(Код_контрагента) VALUES(SELECT COALESCE(MAX([Код_контрагента]),0) FROM Контрагенты)
выдает:
Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'SELECT'.
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ')'.
 
		
		 
	 
	
	
		
		
			
			- 
				Dmitriy Solomnikov
			
- 
				
- Постоялец
  
- 
			
			
-  
- Сообщения: 407
- Зарегистрирован: 10.11.2004 (Ср) 13:04
- Откуда: Москва
- 
				
			
			
			
			 Dmitriy Solomnikov » 24.07.2006 (Пн) 17:50
 Dmitriy Solomnikov » 24.07.2006 (Пн) 17:50 
			
			INSERT INTO Контрагенты(Код_контрагента, Дата_начала_действия, Дата_конца_действия) 
(select (SELECT COALESCE(MAX([Код_контрагента]),0) FROM Контрагенты), '12.12.1982','12.21.1982')
 
		
		 
	 
	
	
		
		
			
			- 
				Ennor
			
- 
				
- Конструктивный критик
  
- 
			
			
-  
- Сообщения: 2504
- Зарегистрирован: 18.12.2001 (Вт) 3:58
- Откуда: Калуга -> Москва
- 
				
			
			
			
			 Ennor » 24.07.2006 (Пн) 18:43
 Ennor » 24.07.2006 (Пн) 18:43 
			
			- Код: Выделить всё
- INSERT INTO Контрагенты ([Код_контрагента])
 SELECT ISNULL(MAX([Код_контрагента]), 0) FROM Контрагенты
В случае одного аргумента COALESCE() вырождается в ISNULL(), а в случае использования конструкции Insert into ... Select добавлять VALUES настоятельно не рекомендуется - лишний уровень скобок приводит только к путанице.
 
		
		 
	 
	
	
	
	Вернуться в Базы данных
	
	Кто сейчас на конференции
	Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11