Selecione distinto depois de certa data [fechado]

-1

Eu tenho um banco de dados com 3 tabelas: classes, teacher e taught:

classes

  • ID (classNum)
  • title (classesType)
  • custo (classesCost)

professor

  • int exclusivo (teacherNum)

ensinado

  • classNum (chave estrangeira)
  • teacherNum (chave estrangeira)
  • campo de data (classdate)

Eu preciso escrever uma consulta em SQL que retornará uma lista de classes exclusivas que foram ensinadas desde 6 de agosto de 2015, classificadas de mais caras a menos dispendiosas

Eu usaria distinta para isso? Para obter todos os resultados exclusivos ou aproveitar as chaves estrangeiras.

Isso vai funcionar?

albo
fonte
2
Bem vindo ao Super Usuário. Nós não somos um serviço de escrita de scripts. Esperamos que os usuários nos digam o que tentaram até agora (incluindo o código que estão usando) e onde estão presos, para que possamos ajudar com problemas específicos. Perguntas que só pedem código são muito amplas e provavelmente serão colocar em espera ou fechado . Por favor leia Como faço uma boa pergunta? .
DavidPostill
3
Parece uma pergunta de lição de casa.
Xavierjazz

Respostas:

1

Sim, algo como:

SELECT DISTINCT * 
FROM classes
WHERE ID IN 
(SELECT classNum  FROM taught WHERE date = CONVERT(...,Aug 6 2015 ))
ORDER BY cost ASC
duDE
fonte
1
Acabei de fazer isso
albo
1
Eu também poderia fazer WHERE date & gt; = Convert (datetime, '2010-11-01') Qual é o uso das reticências aqui?
albo
Sim, possivelmente WHERE date & gt; = Convert (datetime, '2010-11-01', 112) msdn.microsoft.com/de-de/library/ms187928%28v=sql.120%29.aspx
duDE
-1

Eu usei o seguinte constructo ...

CAST (FLOOR (CAST (@date as FLOAT)) como DateTime);

isso remove o tempo da data convertendo-o em float e truncando a parte "time", que é o decimal do float.

Parece um pouco desajeitado, mas funciona bem em um grande conjunto de dados (~ 100.000 linhas) que uso repetidamente ao longo do dia.

Bekzod Buranov
fonte
SELECT distinct (CONVERT (varchar (10), {sua coluna de data}, 111)) FROM {nome da sua tabela}
Bekzod Buranov