SQL - ОСТАВЛЕННОЕ ВНЕШНЕЕ ОБЪЕДИНЕНИЕ и оператор Where

String.format ( http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax )

В Вашем случае это будет:

String formatted = String.format("%03d", num);
  • 0 - для заполнения нулями
  • 3 - для установки ширины на 3

5
задан user70192 15 August 2009 в 14:01
поделиться

4 ответа

Вам нужно предложение GROUP BY , чтобы получить правильный счетчик, и вам нужно внешнее соединение для отображения значений «0» для тех стран, в которых нет действующих провинций.

select
  c.Name as 'CountryName',
  isnull(count(c.Name), 0) as 'ProvinceCount'
from
  Country c
left outer join
  Province p on
  p.CountryID = c.[ID]
where
  c.[ID] = @idParameter
  and p.[Name] not in ('Washington D.C', 'Another State')
group by 
  c.Name
9
ответ дан 13 December 2019 в 22:12
поделиться

Вы не хотите перечислять текст, опечатка может привести к трудноразличимой ошибке. Вы также хотите в конечном итоге сделать так, чтобы у пользователя была страница для его поддержки. Итак:

ALTER TABLE Province
ADD IsState bit
GO

UPDATE Province
set IsState = 1
where Name not in ('Washington D.C', 'Another State')
GO

UPDATE Province
SET IsState = 0
WHERE IsState IS NULL
GO

-- double check the data at this point by browsing it...

SELECT  c.name AS 'country name',
isnull(count(1), 0) AS 'provice count'
FROM  Country c
INNER JOIN Province p 
ON  p.CountryID = c.[ID]
WHERE c.[ID] = @idParameter
AND p.IsState = 1
GROUP BY c.name
ORDER BY 1  
GO
3
ответ дан 13 December 2019 в 22:12
поделиться
select
  c.name as 'country name'
  isnull(count(p.[ID]), 0) as 'provice count'
from
  Country c
inner join
  Province p on
  p.CountryID = c.[ID]
where
  c.[ID] = @idParameter
  and
  p.[Name] not in ('Washington D.C', 'Another State')

Может быть? Не проверено.

- Править

Не обращать на это внимания; как показано на плакате выше, для работы ему нужна «группа по».

-2
ответ дан 13 December 2019 в 22:12
поделиться

Можете ли вы попробовать?

SELECT
  c.Name AS 'CountryName',
  ISNULL(COUNT(*), 0) as 'ProvinceCount'
FROM 
  Country c LEFT OUTER JOIN Province p ON p.CountryID=c.ID and p.Name <> 'Washington D.C.'
WHERE
  c.ID=@idParameter 
GROUP BY c.Name
0
ответ дан 13 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: